前言
在我們使用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
