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 に答える