10

障害が発生した場合に早期に中止できるように、エラー状態のリターン コードを細心の注意を払ってチェックするスクリプトがあります。このスクリプトの 1 つのステップでは、 および を介して、別のボックスでユーザーとしてコマンドを実行しrootます。sshsudo

検討:

ssh $HOST sudo $CMD
echo $?

ssh戻りコードを正常に$CMD返しますが、ゼロ以外の終了コードを返したとしてもsudo、コマンドの実行後に 0 を返します。

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

4

1 に答える 1

9

結局のところ、リターン コードsudo 適切に渡されています。$?私のテストケースは、後続の実行または条件付きテストで上書きされていた可能性が非常に高いです。私は通常、$?そのようなことを避けるために名前付き変数を使用して保存しますが、そこにあります。

于 2012-08-23T14:39:05.637 に答える