違いは何ですか "。" "./"と "source"?
./script
上記はスクリプトを実行します。スクリプトが完了すると、スクリプトが環境に加えた変更はすべて破棄されます。
. script
上記はスクリプトのソースです。コマンドが直接入力されたかのようです。環境の変更はすべて保持されます。
source script
これもスクリプトのソースです。 source
コマンドはPOSIXでは必要ないため、短い.
よりも移植性が低くなります。
ドットは、いくつかのことをすばやく入力するのに便利です。
Webでは、ドットはWebアドレスが持つ最後の値です。
unix.stackexchange.com.
ディレクトリツリーでは、ドットは「このディレクトリ」のどちらかで、pwd
(現在の作業ディレクトリ)です。そして通常はその後にスラッシュを付けて使用します:
ls -d ./
このディレクトリを印刷します(-dオプション)。これは単に./
再び。
だが:
ls ./
Pwd内のすべてのファイルとディレクトリをlist
します。
シェルでは、ドットは「ソースファイル」を意味します。
したがって、これは同等です:
. ./a_file
source ./a_file
そして、あなたはa_file
実行ビットがオンになっている場合は、pwd(ここ)内。
$ ls -l ./a_file
-rwxr--r-- 1 user user 8370 sep 26 19:32 ./a_file
X(実行ビット)がオンになっているため、次のようになります。
$ ./a_file
実行します(しようとします)。