SHELL執行的三種模式

fork    ( /directory/script.sh)

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

相關文章
相關標籤/搜索