我创建了一个小的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
。
答案 0 :(得分:2)
最好只做这样的事情:
if rsync ....
then
echo Yay
else
echo Oh noes
fi
答案 1 :(得分:1)
你想要做的是:
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
答案 2 :(得分:0)
=
之后你不能有空格。如果放置空格,则未正确分配值。最好不要将输出分配到f
,只检查$?
。