インターフェイスが接続されているかどうかを確認する簡単なスクリプトがあります。
connected=$(ping -I $1 -qc 1 8.8.8.8 \
&& echo "connected" \
|| echo "not connected")
echo "$connected" | tail -n1
単に「接続済み」または「未接続」を返す必要があると思います。実際にスクリプトを使用すると、出力の前に常に警告が返されます。
ping: Warning: source address might be selected on device other than enp0s25.
not connected
ここでの警告とは何ですか、それはサブシェルの一部であるべきではありませんか?
警告はping
の標準エラーに送信されますが、キャプチャされません。無視したい場合は、明示的に/dev/null
にリダイレクトしてください。
connected=$(ping -I $1 -qc 1 8.8.8.8 2>/dev/null \
&& echo "connected" \
|| echo "not connected")
echo "$connected" | tail -n1