2015-03-19 67 views
1

是什麼在給設置-e和-x設置在shell腳本

set -e set -x

set -xe

我得到了這些不同的反應的差異。請幫助我獲得澄清

+1

請編輯您的問題以包含實際的測試用例,或者至少包含您在上面列出的每個集合中獲得的確切消息。祝你好運。 – shellter 2015-03-19 14:47:46

回答

1

想必你是在討論bash。根據其manual-e(請參閱第4.3.1節)告訴bash在特定條件下(可能適用於您的腳本)退出。如果是這種情況,「set -xe」可能會在退出前比「set -e」後跟「set -x」打印更多跡線。

+0

其實我得到一個失敗,它在-xe的情況下立即退出,並且不執行它下面的代碼行。但在其他情況下,會發生同樣的故障,但下面的代碼行會執行!這是我的混亂! – Bakkya 2015-03-19 11:41:50

+0

用一個表明問題的(簡短)腳本,我們可能會提供一些解釋。 bash文檔用「-e」提供了一些行爲概述,但是例如,如果腳本在某個複合語句中,bash可能會等待直到它完成替換並收集返回狀態爲止。 – 2015-03-20 01:06:14