如何使用 bash 中的 if 语句来检查是否没有发生错误?

How can I use an if statement in bash to check if no errors have occurred?

我有一个 bash 脚本,我想在执行时自毁。到目前为止,它工作得很好 但是 我想做一些最后的检查,如果没有发生错误(任何输出到 stderr),然后继续并自毁。否则,我想保留脚本。除了错误检查,我有所有的代码。不确定我是否可以将错误输出到文件并检查文件是否为空。我确定这是一个简单的解决方案。

我该怎么做?

感谢您的帮助。

你可以试试这个。 $?包含命令上次执行的进程的 return 代码。此外,标准 nix 导数将 0 划分为(无错误),将 1 - 255 划分为发生的某种错误。请注意,这将报告不一定有任何 stderr 输出的错误。

command
if [ "$?" -ne 0 ]; then
    echo "command failed";
    # your termination logic here
    exit 1;
fi

假设你的脚本returns成功时值为0,如果发生错误则值为1到255你可以使用以下命令

if /path/to/myscript; then
    echo success
else
    echo failed
fi

您还可以使用以下(更短的)命令

[[ /path/to/myscript ]] &&  echo success || echo failed