スクリプトの実行方法の違い

スクリプトの実行方法の違い

次のスクリプトの実行方法の違いについてお問い合わせいたします。

.  script.sh      
../script.sh
. ./script.sh

よろしくお願いします。

ベストアンサー1

   script.sh
 ./script.sh
../script.sh

上記のすべてに、指定されたファイルを実行するようにカーネルに要求するシェルがあります。これは名前に関係なくシェルスクリプトである必要はありません。 1つ目はファイルを検索しPATH、2つ目は.現在のディレクトリ()でファイルを見つけ、3つ目は親ディレクトリでファイルを見つけます。

.    script.sh
.  ./script.sh
. ../script.sh
source    script.sh
source  ./script.sh
source ../script.sh

両方とも、指定されたファイルをシェルコマンドで開いて読み取るには、シェル自体が.必要です。source現在のシェル、まるで内部コマンドがシェルコマンドラインに与えられたように見えます。つまり、たとえばソーススクリプトで実行されたすべての変数の割り当ては、後でシェルに表示されますが、通常の実行ではそうではありません。sourceyes の非標準同義語です.。 1つ目はファイルをもう一度探しPATH、2つ目は現在のディレクトリを探し、3つ目は親ディレクトリを探します。残りの3つも同じだ。

(Zshを除くと、sourceBashとは異なり、現在のディレクトリが最初にチェックされます。Bash.では、このshopt設定がsourcepath無効になっていると検索も.行われません。)sourcePATH

望むより:

おすすめ記事