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

问题描述 投票:0回答:2

奉献有什么不同

set -e
set -x

set -xe

我对此得到了不同的回应。请帮我澄清一下

linux shell command
2个回答
47
投票
set -x

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

set -e

如果某个命令的返回码不为0,并且调用者没有检查,则shell脚本将退出。此功能使 shell 脚本更加健壮。

set -e
set -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


6
投票

想必您正在谈论 bash。根据其 manual

-e
(请参阅第 4.3.1 节)告诉 bash 在某些条件下退出(这可能适用于您的脚本)。如果是这种情况,“
set -xe
”在退出之前可能会比“
set -e
”后跟“
set -x
”打印更多的跟踪内容。

© www.soinside.com 2019 - 2024. All rights reserved.