2011-01-11 268 views

回答

5

第一種方式:

sh b.sh 

創建一個子shell和子shell中運行b.sh。其中一個這樣做的後果是,當你回到a.sh

第二種方法b.sh設置任何環境變量將會完全消失:

. ./b.sh 

來源b.sh,因此當b.sh返回時,在b.sh中設置的任何env vars都將對a.sh保持可見。

+0

完美..感謝ennuikiller :) – 2011-01-11 04:21:39

1

第二種方法稱爲「採購」,它將腳本拉入並在同一個shell中執行。

您會這樣做的原因有兩個:速度,所以第二個腳本可以在第一個腳本中設置環境變量。通常在運行腳本或程序時,它不能改變調用者的環境。

採購速度更快,因爲它不需要分流和啓動另一個shell進程。你可以看到它在某些系統上用於/ etc/init/rc腳本,但性能差異對於大多數用途可能並不重要。採購腳本時,信號處理也有一些細微之處。

+0

謝謝blueshift – 2011-01-11 04:22:59

相關問題