2012-08-23 34 views
5

私はエラー状態のためにリターンコードを細心の注意を払っているので、エラーが発生した場合に早く中止することができます。このスクリプトの一歩は、sshとsudoを使って別のボックスにrootとしてコマンドを実行することです。sudo実行プロセスから終了コードを取得する

は考えてみましょう:

ssh $HOST sudo $CMD 
echo $? 

sshはバックだけで罰金リターンコードを渡しますが、$ CMDがゼロ以外の終了コードを返した場合でも、sudoはまだコマンドを実行した後、0を返します。

$ CMDへの戻りコードを取得するにはどうすればよいですか?私はsshのリターンコードとして返されるのは非常に部分的ですが、$ CMDの出力で混乱させることのできない別の簡単な方法があれば、私はすべて耳にします。

答えて

4

sudo は、戻りコードを正しく渡してです。私のテストケースは、おそらく$を上書きしていたでしょうか?後続の実行または条件付きテストを伴う。私は通常$を保存するために名前付き変数を使用しますか?そのようなことを避けるために、しかしそこにはあなたがいます。

+0

私は結果をエコーし​​ていたので、sshはステータスコードを正しく渡していましたが、echoは0を返していました。 –

関連する問題