我正在編寫一個bash腳本(稱爲gotodir.sh),並希望在腳本過程中更改目錄,具體取決於某些變量,如cd /home/username/${FOO}/${BAR}
。如何在bash腳本中運行cd(subshell外)
由於目錄僅在子shell中進行了更改,因此只要在進程退出時按原樣運行即不起作用。
我的shell是tcsh。 (是的,我知道...在這裏不是我的選擇。)在我的.cshrc文件中,我想要將關鍵字 gotodir別名爲gotodir.sh。
我讀過,執行腳本時使用.
或source
前綴會導致腳本在同一個shell中運行(即不是子shell)。
我試圖把我的的.cshrc文件中的以下內容:
alias gotodir . /home/username/bin/gotodir.sh
但這會導致錯誤:/bin/.: Permission denied.
我一直在使用source
代替.
alias gotodir source /home/username/bin/gotodir.sh
也嘗試
但這會導致錯誤:if: Expression Syntax.
如何在運行tcsh時使用bash腳本完成此操作?
你在腳本的頂部是否有'#!/ bin/bash'並執行腳本'chmod + x/home/username/bin/gotodir.sh'的權限? – KeepCalmAndCarryOn
@KeepCalmAndCarryOn是的,是的。不幸的是,沒有那麼容易修復。 :( –