web-dev-qa-db-ja.com

違いは何ですか "。" 「./」と「ソース」?

違いは何ですか "。" "./"と "source"?

5
ankagarwal
./script

上記はスクリプトを実行します。スクリプトが完了すると、スクリプトが環境に加えた変更はすべて破棄されます。

. script

上記はスクリプトのソースです。コマンドが直接入力されたかのようです。環境の変更はすべて保持されます。

source script

これもスクリプトのソースです。 sourceコマンドはPOSIXでは必要ないため、短い.よりも移植性が低くなります。

6
John1024

ドットは、いくつかのことをすばやく入力するのに便利です。

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

実行します(しようとします)。

0
Isaac