ディレクトリを変更して実行するシェル スクリプトがあります。スクリプトが終了したら、ディレクトリの変更をコマンド プロンプトに通知するようにします。
そこで、次のように実行します:
. script
しかし、スクリプトが終了すると、ウィンドウ全体が終了します。これを修正する方法はありますか?
私のシェルはbashです。
答え1
Macでこれを解決するには2つの方法があります
A> ターミナルの設定に移動し、[一般] を選択して、「シェルが正常に終了した場合はウィンドウを閉じる」というボックスのチェックを外します。
B> お気に入りのテキストエディタで ~/Library/Preferences/com.apple.Terminal.plist を指定します。
行を検索します:
< キー >ShellExitAction< / キー > < 整数>1< / 整数>
1 を 2 に変更し、ターミナル アプリを再起動します。
B は基本的に A と同じですが、手動で行われます。
答え2
にステートメントscript
が含まれていますかexit
? ドット (ソース) は現在のシェルでコードを実行することに注意してください。 が含まれている場合exit
、現在のシェルは終了します。 スクリプトを確認し、 を に変更することをお勧めします。exit
return
ソース(実行したい場所return
)と実行(実行したい場所exit
)を検出できる場合があります。
[[ $BASH_SOURCE != $0 ]] && echo 'running sourced ...'