[英]Bash test for command exit status
我创建了一个小的rsync脚本来同步我的播客。 我已经将脚本配置为在完成后通过电子邮件发送给我。 我试图测试rsync的退出状态来决定发送哪个消息。 这是块:
my_command= rsync --log-file=/home/jake/logs/rsync.log -avzu $local_directory $remote_directory
if [ $? -eq 0 ]; then
$mail_expression_success
else
$mail_expression_fail
fi
无论命令如何完成,我都会收到第一个变量中包含的消息。 $mail_expression_success
。
最好只做这样的事情:
if rsync ....
then
echo Yay
else
echo Oh noes
fi
你想要做的是:
my_command=$(rsync --log-file=/home/jake/logs/rsync.log -avzu $local_directory $remote_directory)
if [ $? -eq 0 ]; then
$mail_expression_success
else
$mail_expression_fail
fi
=
之后你不能有空格。 如果放置空格,则未正确分配值。 最好不要将输出分配给f
并只检查$?
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.