shell指令碼的三種呼叫方式

2021-08-08 10:45:17 字數 575 閱讀 9456

在執行shell指令碼時候,有三種方式來呼叫外部的指令碼,exec(exec script.sh)、source(source script.sh)、fork(./script.sh)

1、exec(exec /home/script.sh):

使用exec來呼叫指令碼,被執行的指令碼會繼承當前shell的環境變數。但事實上exec產生了新的程序,他會把主shell的程序資源占用並替換指令碼內容,繼承了原主shell的pid號,即原主shell剩下的內容不會執行。

2、source(source /home/script.sh)

使用source或者「.」來呼叫外部指令碼,不會產生新的程序,繼承當前shell環境變數,而且被呼叫的指令碼執行結束後,它擁有的環境變數和宣告變數會被當前shell保留,類似將呼叫指令碼的內容複製過來直接執行。執行完畢後原主shell繼續執行。

3、fork(/home/script.sh)

直接執行指令碼,會以當前shell為父程序,產生新的程序,並且繼承主指令碼的環境變數和宣告變數。執行完畢後,主指令碼不會保留其環境變數和宣告變數。

總結:這樣來看fork最靈活,source次之,exec最詭異。 

shell指令碼的三種執行方式

執行shell指令碼的三種方式有 1.sh test.sh 2.test.sh 3.source test.sh or test.sh 對於test.sh指令碼來說,如果沒有執行許可權或者沒有在檔案開頭指定直譯器,那麼只能使用第一種執行方式,除此之外,他們沒有什麼差別 但是對於第三種執行方式來說,它...

Shell指令碼執行的三種方式

參考 bash script name或sh script namepath script name或.script namesource script name或.script name 1 bash script name或sh script name 這是當指令碼檔案本身沒有可執行許可權 即檔...

hive三種呼叫方式

一 hive e sql語句 shell命令 適合比較短的sql語句呼叫,優點是可以直接在shell中呼叫 靜音模式 s 在執行hiveql過程中,不在顯示器輸出mr的執行過程 hive s e sql語句 test.txt 將執行結果直接輸入到本地檔案 二 hive f sql.sql shell...