コマンドラインから次のrsyncコマンドを実行すると、正しい戻り状態が表示されます。
/usr/bin/rsync -azv -p /home/zaman x11server:/home/zamanr &> rsyncjob/output."$datetime"
echo $?
255
アクセスできないため、hostname
戻り値は255です。
私は大丈夫です。しかし、同じコマンドをスクリプトに入れると、bash
戻り値は得られません。
#!/bin/bash
datetime=`date +%Y.%m.%d`
ret_value= `/usr/bin/rsync -azv -p /home/zaman x11server:/home/zamanr &> rsyncjob/output."$datetime"`
echo $ret_value
スクリプト出力にはスペースが表示されます。印刷されていません$ret_value
。
ここで私が見逃しているのは、rsync
スクリプトを介して印刷されたコマンドの戻り値を取得することです。
ベストアンサー1
この試み。
#!/bin/bash
datetime=`date +%Y.%m.%d`
ret_value=`/usr/bin/rsync -azv -p /home/zaman x11server:/home/zamanr &> rsyncjob/output."$datetime"; echo $?`
echo $ret_value
問題は、実行中のコマンドがファイルにパイプされるため、出力が生成されないことです。最後のコマンド終了コードをエコーするコマンドを追加すると、目的の結果が得られます。