在shell脚本中设置-e和set -x

时间:2015-03-19 09:54:55

标签: linux shell command

给予

有什么不同

set -e set -x

set -xe

我对这些做出了不同的回应。请帮我澄清一下

2 个答案:

答案 0 :(得分:6)

set -x

在执行之前打印shell命令。此功能可帮助程序员跟踪其Shell脚本。

set -e

如果一个命令的返回码不为0并且调用者未对其进行检查,则shell脚本将退出。此功能使Shell脚本更健壮。

set -eset -x通常出现在shell脚本的开头:

set -x
set -e

echo "I am a shell script."

或用作shell命令:

sh -xe shell_script.sh

参考:http://julio.meroh.net/2010/01/set-e-and-set-x.html

答案 1 :(得分:3)

据推测,你在谈论bash。根据其manual-e(请参阅4.3.1部分)告诉bash在某些条件下退出(可能适用于您的脚本)。如果是这种情况,“set -xe”可能会在退出之前打印更多跟踪,而不是“set -e”后跟“set -x”。