osxシェルは使用後に終了します

osxシェルは使用後に終了します

ディレクトリを変更して実行するシェル スクリプトがあります。スクリプトが終了したら、ディレクトリの変更をコマンド プロンプトに通知するようにします。

そこで、次のように実行します:

. script

しかし、スクリプトが終了すると、ウィンドウ全体が終了します。これを修正する方法はありますか?

私のシェルはbashです。

答え1

Macでこれを解決するには2つの方法があります

A> ターミナルの設定に移動し、[一般] を選択して、「シェルが正常に終了した場合はウィンドウを閉じる」というボックスのチェックを外します。

B> お気に入りのテキストエディタで ~/Library/Preferences/com.apple.Terminal.plist を指定します。

行を検索します:

< キー >ShellExitAction< / キー >
< 整数>1< / 整数>

1 を 2 に変更し、ターミナル アプリを再起動します。

B は基本的に A と同じですが、手動で行われます。

答え2

にステートメントscriptが含まれていますかexit? ドット (ソース) は現在のシェルでコードを実行することに注意してください。 が含まれている場合exit、現在のシェルは終了します。 スクリプトを確認し、 を に変更することをお勧めします。exitreturn

ソース(実行したい場所return)と実行(実行したい場所exit)を検出できる場合があります。

[[ $BASH_SOURCE != $0 ]] && echo 'running sourced ...'

関連情報