これはベストプラクティスに関する簡単な質問です。どちらを使うべきですか?
オプション1
ping -c1 "$host"
if [[ $? -eq 0 ]] ; then
command
else
command
fi
オプション2
if ping -c1 "$host" ; then
command
else
command
fi
簡単な命令であることはわかりますが、大きくなると違いが途方もないことがあります。
ベストアンサー1
優先事項ですが、1つを追加する予定の場合は、2番目のフォームがより安全になりますset -e
。このフォームはまだ期待どおりに機能しますが、最初のフォームでは失敗した場合、スクリプトはすぐに終了しますping
(ゼロ以外の値で)。終了ステータスを返します)。
注: 演算子は-eq
、ではありませんeq
。