1

我创建了一个小 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.

4

3 回答 3

2

最好只做这样的事情:

if rsync ....
then
       echo Yay
else
       echo Oh noes
fi
于 2013-10-15T02:19:40.717 回答
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  
于 2013-10-15T02:23:12.453 回答
0

后面不能有空格=。如果你把空间,你的价值没有正确分配。您最好不要将输出分配给f并仅检查$?.

于 2013-10-15T02:18:25.603 回答