1. 程式人生 > >切換目錄Shell 指令碼執行有三種方法

切換目錄Shell 指令碼執行有三種方法


bash 指令碼名

sh 指令碼名

chmod +x 指令碼名

使用下面語句測試


#a.sh(副檔名可不要)
cd /
pwd
echo "complete"

然而具體執行時候,發現過程中改變過路徑,然而最終結果是並沒有改變路徑。


[[email protected] ~]$ bash a.sh
/
complete
[[email protected] ~]$

原因分析:

執行指令碼時候,只是在當前的shell下開了一個子程序,切換目錄的操作只對該程序中相關後續指令有效,但改變不了父程序的目錄。

解決方法:

法一:

用 source a.sh就行了。

法二:


[[email protected] ~]$ cd ~
[[email protected] ~]$ chmod u+x a.sh
[[email protected] ~]$ . ./a.sh
/
complete
[[email protected] /]$

對於 $ . ./a.sh

第一個點是bash的內部命令,表示在當前shell中執行

後面的“./a.sh”是命令的引數,即要執行的指令碼

注:兩點之間要有空格。