Linux shell指令碼執行方式:source、sh、bash、./執行指令碼的區別
1、source命令用法:
source FileName
作用:在當前bash環境下讀取並執行FileName中的命令。該filename檔案可以無"執行許可權"
注:該命令通常用命令“.”來替代。
如:source .bash_profile
. .bash_profile兩者等效。
source(或點)命令通常用於重新執行剛修改的初始化文件。
source命令(從 C Shell 而來)是bash shell的內建命令。
點命令,就是個點符號,(從Bourne Shell而來)。
2、sh和bash命令用法:
sh FileName
bash FileName
作用:在當前bash環境下讀取並執行FileName中的命令。該filename檔案可以無"執行許可權"
注:兩者在執行檔案時的不同,是分別用自己的shell來跑檔案。
sh使用“-n”選項進行shell指令碼的語法檢查,使用“-x”選項實現shell指令碼逐條語句的跟蹤,
可以巧妙地利用shell的內建變數增強“-x”選項的輸出資訊等。
3、./的命令用法:
./FileName
作用:開啟一個子shell來讀取並執行FileName中命令。
注:執行一個shell指令碼時會啟動另一個
每個shell指令碼有效地執行在父shell(parent shell)的一個子程序裡.
這個父shell是指在一個控制終端或在一個xterm視窗中給你命令指示符的程序.
shell指令碼也可以啟動他自已的子程序.
這些子shell(即子程序)使指令碼並行地,有效率地地同時執行指令碼內的多個子任務.