在交互式bash shell中輸入set -e
後,如果任何命令以非零值退出,bash將立即退出。我怎樣才能取消這種效果?如何撤銷「set -e」的效果,如果有任何命令失敗,立即退出
142
A
回答
217
With set +e
。是的,它是落後的,你啓用外殼選項與set -
和禁用他們與set +
。歷史葡萄乾,donchanow。
16
- 使用+而不是 - 會使這些標誌關閉。
55
這可能是不方便使用要覆蓋它每次set +e
/set -e
。我找到了更簡單的解決方案。
而不是做它像這樣的:
set +e
command_that_might_fail_but_we_want_to_ignore_it
set -e
,你可以做這樣的:
command_that_might_fail_but_we_want_to_ignore_it || true
,或者,如果你想節省按鍵,不介意是一個有點神祕:
command_that_might_fail_but_we_want_to_ignore_it || :
希望這有助於!
+11
想知道':'的歷史,並找到我的答案[here](http://stackoverflow.com/a/3224910/1094541 ),以防其他人感到好奇。 – 3cheesewheel 2013-09-23 16:31:54
+2
只有當你不關心你正在運行的命令的返回碼時,這才適用。 – Isaac 2017-10-31 11:32:34
相關問題
- 1. 如果heredoc命令失敗,如何從腳本中退出
- 2. 如果git命令失敗,如何退出git鉤子腳本?
- 3. 如何在命令失敗時退出?
- 4. 如果任務失敗,我該如何執行Ant命令?
- 5. 如果任何單個命令失敗,但仍然運行所有命令,則Bash會失敗
- 6. 如果有不清楚的未來超時或立即失敗
- 7. 如何修復命令/ bin/sh的失敗,退出代碼12
- 8. 如何從發現-exec退出,如果失敗就
- 9. 命令copypng失敗,退出代碼71
- 10. 如果引發任何異常如何有效地退出Python程序/抓到
- 11. 如果Cleartool命令是相同的,那麼Cleartool命令是如何撤銷檢查的?
- 12. 命令失敗,退出代碼ENOENT
- 13. 如何撤銷「丟棄」如果沒有提交
- 14. 如何立即退出程序?
- 15. UIButton立即購買效果
- 16. VB.Net代碼退出例程,如果沒有執行'Else'命令,如果語句
- 17. 如何立即獲取RemoteObject的結果?
- 18. jQuery ajax:如果ajax驗證失敗,如何銷燬提交?
- 19. 如果有任何語句失敗,將回滾的SQL查詢
- 20. 如何撤消launchctl命令?
- 21. 如何撤消./configure命令
- 22. 如何撤消TRUNCATE命令
- 23. Travis CI給予*命令「npm config set spin false」失敗並在127期間退出。*
- 24. 如何使jQuery自動完成的結果立即消失
- 25. Ant腳本如果任何迭代失敗,如何繼續
- 26. 運行清理步驟,如果有任何阻塞失敗
- 27. Ember CLI中的命令「ember server」立即退出
- 28. 是否有可能以某種方式撤銷mv命令的結果?
- 29. 如何在網頁打開後立即生成jQuery效果
- 30. 如何在Oauth2中同時撤銷RefreshToken並使AccessToken失效
非常感謝,它是相應手冊頁(http://www.faqs.org/docs/bashman/bashref_56.html)的最後一行,我沒有讀到最後。 – 2010-08-18 22:22:17
bash手冊是巨大的,這是事實。 (僅供參考,因爲您似乎是新的:在您的問題的最佳答案下單擊複選標記已完成),這稱爲「接受」。) – zwol 2010-08-18 22:26:53
格式'set [--abefhkmnptuvxBCHP] [ - o選項] [爭論...]真的很具誤導性。我簡單地認爲撤消是由另一個內建人員完成的,試圖解除鎖定而沒有任何東西。有趣的是,在bash中'set'和'unset'不是相反的,雖然我承認我目前對bash編程知之甚少。 – 2010-08-18 22:29:08