私が次のことを行い、ネットワークがダウンしている場合、ゼロケースが実行されますが、これは実行されるべきではありません。
case "$(ssh -n $host zfs list -t snapshot -o name -H | grep "tank/fs" | wc -l | awk '{print $1}')" in
0) # do something
;;
1) # do something else
;;
*) # fail
esac
スクリプトの前半で、 に SSH で接続できることを確認し$host
ましたが、今日、この問題を発見しました。この問題は、確認の直後にネットワークが失敗するというものでした。
SSH コマンドからの戻り値を確認すると、awk
最後に実行されたときに常に戻り値を取得します。
質問
zfs
失敗した SSH 接続からのゼロ行ではなく、出力されたゼロ行を実際にカウントすることを保証するにはどうすればよいですか?