我有一個 shell 腳本,可以更改目錄然後運行。我希望在腳本終止後將目錄更改冒泡到命令提示字元。
所以,我運行它:
. script
但是,現在當腳本終止時,整個視窗都會終止。有沒有辦法解決這個問題?
我的外殼是bash。
答案1
在 Mac 中,有兩種方法可以解決此問題
A> 前往終端機的首選項,選擇 [常規],然後取消選取「如果 shell 乾淨退出則關閉視窗」複選框。
B> 將您最喜歡的文字編輯器指向 ~/Library/Preferences/com.apple.Terminal.plist
找行:
<鍵>ShellExitAction</鍵> <整數>1</整數>
將 1 更改為 2 並重新啟動終端應用程式。
B 與 A 基本相同,但手動完成。
答案2
是否script
包含exit
聲明?請記住,點(採購)在當前 shell 中運行您的程式碼。因此,如果它有一個exit
,您當前的 shell 就會退出。您可能需要檢查腳本並將其更改exit
為return
.
您也許能夠偵測到正在取得(您想要執行的操作return
)和正在運行(您可能想要執行的操作exit
)
[[ $BASH_SOURCE != $0 ]] && echo 'running sourced ...'