から終了コードをキャプチャ:bashの - 私は次のように私はシェルスクリプトを持っているシェルスクリプト 内のリモートsshコマンドの終了ステータスを取得するに探していたリモートsshコマンド
function rSSH {
local x
echo "Running ssh command"
x=$(ssh -o StrictHostKeyChecking=no -i $keyPair -o ProxyCommand="ssh -W %h:%p -i $keyPair [email protected]$bastionIP 22" [email protected]$IP "$cmd")
x=$?
echo "SSH status is : $x"
if [ $x -eq 0 ];then
echo "Success"
else
echo "Failure"
exit 1
fi
}
rSSH
exit 0
私が実行した場合上記のスクリプトは無効な$ bastionIP(テストの失敗のシナリオ)を持つバックグラウンドジョブとして、終了コード0(1ではなく)で終了し、ログに表示される唯一の情報は最初のecho "Running ssh command"です。スクリプトを終了するだけです。
私が間違っていることや、リモートsshコマンドの終了ステータスを取得するためのより良い方法を指摘できますか? 助けてください。
あなたは 'set -e'を使用していますか? – chepner
ああええ。それはおそらく問題の原因です。 @chepnerそれを指摘してくれてありがとう。 – outtoexplore