ICMPエコーが失敗した場合、このIF文からエラーを省略したいと思います。シェルスクリプトの出力からエラーを省略します。
例コード:
if ping -q -c 1 -W 1 1.2.3.4 >/dev/null; then
echo -e "PING OK"
else
echo -e "PING NOK"
fi
それはpingが成功するか、スクリプトの外部でコマンドを実行した場合、完全に動作しますが、応答がない場合は、以下の出力が得られます。
PING 1.2.3.4 (1.2.3.4): 56 data bytes
--- 1.2.3.4 ping statistics ---
1 packets transmitted, 0 packets received, 100.0% packet loss
PING NOK
私はこのそこに引用2>は/ dev/nullのための答えを見てきましたが、これはその後、成功したかどうかにかかわらず、出力全体ping照会を表示します!以下のように、2>/dev/nullの例。
PING 1.2.3.4 (1.2.3.4): 56 data bytes
--- 1.2.3.4 ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 26.134/26.134/26.134/0.000 ms
PING OK
これはN00B質問のビットですが、私はネットワーキングのやつではなく、開発者:)事前に
のおかげですよ!
パーフェクトを終了状態を使用することができます!本当にありがとう。 @LiamMulligan私の喜び。 –
質問を解決済みとマークするのを忘れないでください。 – hidefromkgb
'&>'を使うのは "もっと近代的"ではありません。これは、シェル標準に違反するひどいハックです(または、せいぜい標準のあいまいさを悪用します)。 posix準拠のシェルは、 'cmd&>/dev/null'をcmdを非同期に実行し、/ dev/nullへの些細なリダイレクトを実行する' cmd>/dev/null'と同じように解釈します。それは避けられない構造物です。 –