1

シナリオは次のとおりです。ターミナルを開きます。「/home/me」は次のようにbashなります。cwd

[/home/me $] ls
a.sh

今、私a.shはこのようにcwdにいます:

[/home/me $] ./a.sh

私が欲しいbashのは、 をcwd実行して を変更したいということです。つまり、終了a.sh後、 はではなくなります。a.shbashcwd/home/me

[/home/other_dir $]

それをしてもいいですか?はいの場合、どのように?

4

2 に答える 2

1

現在のシェルのコンテキストで実行されるsourceコマンドを使用できます。したがって、スクリプトで行われたすべての変更は、シェルで表示されます。

例えば:

a.sh の内容が次の場合:cd /usr/bin

次に、以下を実行すると、CWD

$ source a.sh

于 2012-10-23T10:01:18.880 に答える
1

a.shそのためには、次のようにサブシェルをフォークせずに実行する必要があります。

. ./a.sh

これにより、スクリプトが現在のシェル自体で実行され、スクリプトchange dir内のコマンドが現在のシェルに反映されます。

于 2012-10-23T10:01:21.310 に答える