source sh執行指令碼的區別

2021-07-04 04:52:18 字數 682 閱讀 9720

主要有兩種方式執行shell指令碼

1)source test.bsh

2)sh test.bsh

1)souce執行指令碼檔案會在父程式中執行,各項動作都會在原本的bash內生效,執行過程不另開程序,指令碼檔案中設定的變數在當前shell中可以看到;

如下例子:

其中sh檔案內容如下:

就是通過read命令從命令列中讀取兩個字串firstname和lastname,作為乙個完整的人名最後在螢幕上輸出。source執行該文字檔案時正確輸出,

source還可以用「.」直接替換;

source執行檔案可以這樣理解:

2)sh執行指令碼檔案是在當前程序另開子程序來執行指令碼命令,指令碼檔案中設定的變數在當前shell中不能看到。使用這種執行方式時,其實script實在子程式的bash中執行的,當子程式完成之後,子程式內的各項變數或者動作將會結束而不會傳回到父程式中。對比第一張圖我們可以得到下面的結果:

當sh檔案執行完畢之後,子程式bash中的所有資料便被移除。可以這樣理解

"./"執行結果和sh執行結果相同。

值得注意的是:一般當我們想要讓某些寫入~/.bashrc(如環境變數)生效的時候,都需要登出系統,重新開啟服務,當我們不登出系統就想要使寫入生效的時候,我們就可以使用source ~/.bashrc而不是使用sh ~/.bashrc.

source sh bash 執行指令碼的區別

1 source命令用法 source filename 作用 在當前bash環境下讀取並執行filename中的命令。該filename檔案可以無 執行許可權 注 該命令通常用命令 來替代。如 source bash profile bash profile兩者等效。source 或點 命令通常用...

source sh bash 執行指令碼的區別

1 source命令用法 source filename 作用 在當前bash環境下讀取並執行filename中的命令。該filename檔案可以無 執行許可權 注 該命令通常用命令 來替代。如 source bash profile bash profile兩者等效。source 或點 命令通常用...

source sh bash 執行指令碼的區別

1 source命令用法 source filename 作用 在當前bash環境下讀取並執行filename中的命令。該filename檔案可以無 執行許可權 注 該命令通常用命令 來替代。如 source bash profile bash profile兩者等效。source 或點 命令通常用...