2014-11-05 88 views

回答

11

exec執行指定的命令,取代當前進程而不是開始新的子進程。

如果你在shell提示下鍵入

bash -l 

,它會調用一個新的shell進程(-l使其成爲一個登錄shell)。如果您退出該shell進程,您將回到原來的shell進程。

打字

exec bash -l 

意味着新的外殼工藝取代當前的shell進程。這可能會稍微減少資源密集度。

這樣做的原因可能是新殼設置其環境(通過閱讀您的.bashrc,.bash_profile等)。

更多信息參見bash的文檔:用於登錄shell從非登錄shell

  • Bourne Shell Builtins的區別用於在exec命令文檔

    (你應該能夠通過輸入info bash讀取你自己的系統上的說明書。)

  • +0

    謝謝!很好的答案 – matiascelasco 2014-11-05 00:57:55

    1

    這將使用新的bash shell作爲登錄shell來替換當前的shell。

    +2

    它不只是執行它;沒有'exec'的'bash -l'就是這樣做的。看到我的答案。 – 2014-11-05 00:58:41