0

我想在存在脚本之前检查第二个条件的退出代码

if [ -f "/var/lock/myproc/agentlock" ] && \
   [ $(ps ax | grep "myproc" | grep -v "grep" | awk '{print $1}' | xargs kill -9) ]; then

 echo "Exiting without running the rest of the script" | sendmail $myemail
 exit

fi

exit如果第二个命令的退出状态不为零,我想要脚本。

4

1 回答 1

0

你是这个意思吗?

sendmail $myemail || exit # will exit if sendmail exit status is non-zero

很可能你想这样引用$myemailsendmail "$myemail". 这将防止 bash globbing 搞砸您的电子邮件。

如您所见,您可以使用&&检查零退出代码和非零退出代码||

您也可以使用&& ||技巧编写简短的 if 语句:

[[ 'hello' == 'world' ]] && echo yes || echo no

如果要否定条件,请使用! 如下所示:

if [ firstcondition ] && ! [ secondcondition ]; then

这意味着''如果第一个条件为真且第二个条件不为真''

于 2013-08-23T02:23:09.350 回答