shell指令碼中無法使用cd的問題解決方法

2022-01-13 08:46:07 字數 439 閱讀 3042

在我們使用shell編寫指令碼的時候,有時會需要切換到其他的目錄中。但是,當我們按往常的格式一樣在指令碼中寫入cd後,要切換的目錄是存在的,但是當執行指令碼,我們會收到報錯,原因是cd的命令在指令碼中沒有實現。

在shell在執行指令碼的時候,會建立乙個子shell,並在子shell中逐條執行指令碼中的指令

子shell會從父shell中繼承了環境變數,但是執行後不會改變父shell的環境變數

在子shell中的操作和環境變數不會影響父程序,在執行完shell後又回到了父程序

只需要source指令碼即可。

source 命令可以在當前的shell環境下執行指令碼,不會建立子shell ,直接影響父程序。

source命令可直接換成 「.」。

source /home/bash/bash.sh

或. /home/bash/bash.sh

Shell指令碼中cd命令使用

在寫shell指令碼的時候發現cd切換目錄的時候無法切換,是下面的。bin bash changedir.sh cd home firefox pwd 我仔細一想,我執行的時候是 changedir.s h來執行的,這樣執行的話終端會產生乙個 子shell 子shell去執行我的指令碼,在子shel...

Shell指令碼中cd命令使用

在寫shell指令碼的時候發現cd切換目錄的時候無法切換,是下面的。1 bin bash 2 changedir.sh 3history 4 cd home firefox 5 sleep 1 6 pwd 我仔細一想,我執行的時候是.changedir.sh來執行的,這樣執行的話終端會產生乙個子sh...

基於shell指令碼中cd命令無效的解決方法

在學習的時候,經常要切換到固定的資料夾,於是寫了個shell指令碼用cd命令切換卻發現目錄切換不了。如下 bin bash c.sh cd mnt hgfs vmshare pwd解釋 執行的時候是.c.sh來執行的,這樣執行的話終端會產生乙個子shell 類似於c語言呼叫函式 子shell去執行我...