輸入 `set -e` 會終止 bash

輸入 `set -e` 會終止 bash

bash版本中4.4.12,當我輸入:

set -e

在命令提示字元下,shell 退出,返回128.

set -u為什麼天氣好的時候會出現這種狀況呢?

答案1

例如,如果您有一個命令作為 的擴展的一部分返回非零退出狀態PROMPT_COMMAND(在列印提示符號之前執行),那麼當您設定該選項bash時,這將觸發 shell 立即退出。errexitset -e

另一種可能性是存在一個DEBUG返回非零退出狀態的陷阱集。然而陷阱DEBUG被執行Enter呼叫一個命令,因此在您按after 後不會導致 shell 立即退出set -e,而是在啟動下一個命令之前退出。

set -u你設定nounsetshell選項。如果您嘗試將任何未設定的變數展開為$@$*,則此選項將導致 shell 發出錯誤。它不會導致 shell 退出,除非set -e它也有效。

set -u生效PS1shell中未設定的變數將要errexit使用 設定選項後立即退出set -e

相關內容