重複の可能性:
使用'。 'Bashでファイルを実行する
.bashrcファイルを変更せずにスクリプトを介して環境をエクスポートする方法を見つけようとしています。
私が見つけたこの古い便利な投稿それは言った:
変数はスレーブプロセスにのみエクスポートでき、親プロセスに戻すことはできません。スクリプトが親シェルの環境に影響を与えるようにするには、スクリプトを実行します。
. ./yourprogram
. ./script
との違いが何なのか知りたいです./script
。
私が見たときに現在のディレクトリからスクリプトを実行することは私にとって何を意味しますか?
ベストアンサー1
./script
その場所で「script」というファイルを実行します./
。これは「ここ」(つまり、現在のディレクトリ)に変換されます。スクリプトはサブシェルで実行され、サブシェルが終了すると、スクリプトが環境で実行したすべての操作が失われます。
. ./script
./
現在のシェルに「script」というファイルを実行するように指示します。現在のシェルにはサブシェルがないため、環境で行われたすべての変更はスクリプトが停止しても保持されます。
.
コマンドの略語ですsource
。 man()を使用してソースコードを見つけることができますman source
。
/home/bob/script
./script
まるであなたがディレクトリにいると思います。/home/bob
. /home/bob/script
. ./script
まるであなたがディレクトリにいると思います。/home/bob