2

簡単な bash スクリプトの質問です。笑わないでください。私のスクリプトはディレクトリを変更するだけです:

echo on;
echo "running script";
CURRENT_DIR=.;
cd ..;
pwd;

エコーでディレクトリが変更されるのを確認できますが、終了しても端末は同じディレクトリのままです。任意のヒント?

4

1 に答える 1

5

スクリプトを実行するbashと、独自のシェルで実行されます。つまり、現在の作業ディレクトリを含む独自のシェル環境があることを意味します。スクリプト内にいる場合cd、そのスクリプトはその新しい現在のディレクトリで動作します。ただし、サブシェルはそれに触れないため、完了すると、ユーザーレベルのシェルが存在する現在のディレクトリにとどまります。

現在のシェル環境に影響を与えたい場合、1 つの方法は次のように実行すること.です。

. my_script

これは実行に似てsh my_scriptいますが、現在のユーザー シェルの環境内で動作します。

于 2013-10-14T17:03:38.823 に答える