2016-12-30 2 views
-5

/usr/binディレクトリにスクリプト "shellscript"がある場合(インストールされているプログラムのスクリプトでもあります)。ターミナルのコマンド "shellscript"(どこからでもホームや他のディレクトリから)を実行すると完全に動作しますが、 "。shellscript"を使うとこのファイルも実行されます。 "。/ path/to/script/shellscript"を使用して実行することができますが、/ usr/binにある場合はパスなしでdirectコマンドを使用できますか? 実行するのは安全ですか? このような方法でプログラムを実行できますか? 説明が必要です。はいの場合、なぜですか?そうでなければなぜ?それではなぜですか?いつ私はbashの "。shellscript"コマンドでシェルスクリプトを実行できますか、ubuntu?

+0

マニュアルを確認しましたか?私は今それをやろうとしている。 – melpomene

+5

ああ、見て:https://www.gnu.org/software/bash/manual/bashref.html#Bourne-Shell-Builtinsは言う: "'。filename [arguments] ' - *ファイル名*現在のシェルコンテキストの引数。* filename *にスラッシュが含まれていない場合は、 'PATH'変数を使用して* filename *を検索します。 – melpomene

答えて

1

Bashシェルはshellscript. shellscriptの両方のケースで変数PATHにリストされているディレクトリを検索します。主な違いは、.(または同等の場合はsource)を使用してスクリプトを開始すると、スクリプトを解釈するための新しいシェルプロセスが作成されないことです。これは、スクリプトが呼び出し元で利用可能な環境変数と関数を定義できるので便利なことがあります。詳細については、Bash manual pageinfo bash)を参照してください。

+0

使用するのに欠点がありますか?シェルスクリプト。私たちがプログラム "prog"をインストールしていて、 "prog"と ".prog"コマンドを使って実行すると、脅威やエラーが発生する可能性はありますか? –

+0

私はいくつかのプログラムでこれをやっていますが、動作は異なりますか?何が原因だろうか?それらの違いは何ですか? –

+0

あなたは "スクリプトが呼び出し元で利用可能な環境変数と関数を定義することを許可します"と説明することができます。 –

関連する問題