fork是最普通的, 就是直接在腳本里面用/directory/script.sh來調用script.sh這個腳本. shell
運行的時候開一個sub-shell執行調用的腳本,sub-shell執行的時候, parent-shell還在。 spa
sub-shell執行完畢後返回parent-shell. sub-shell從parent-shell繼承環境變量.可是sub-shell中的環境變量不會帶回parent-shell 繼承
exec (exec /directory/script.sh) ip
exec與fork不一樣,不須要新開一個sub-shell來執行被調用的腳本. 被調用的腳本與父腳本在同一個shell內執行。可是使用exec調用一個新腳本之後, 父腳本中exec行以後的內容就不會再執行了。這是exec和source的區別 變量
source (source /directory/script.sh) 循環
與fork的區別是不新開一個sub-shell來執行被調用的腳本,而是在同一個shell中執行. 因此被調用的腳本中聲明的變量和環境變量, 均可以在主腳本中獲得和使用. 腳本
在一個腳本中循環調用另外一個腳本而且傳參數的時候,若是不須要子腳本中聲明的變量則使用fork,使用source在循環第十次的時候會報參數過長問題 di