如何使用 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
我有一个 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