私はipのリストを通ってそれらを一つずつpingするbashスクリプトを持っています。各pingの終了ステータスが0の場合、ノードが停止していることをエコーします。それ以外の場合はノードが停止しています。これを完全に機能させることができますが、bashスクリプトが終了すると常に終了ステータスは0になります。whileループを使用しているときのBashの終了ステータス
私が達成しようとしているのは、例えば、3つ目が失敗した場合は5つのIPのうち、リストを通って残りをチェックするが、スクリプト終了時には0以外の終了ステータスが出力され、
cat list.txt | while read -r output
do
ping -o -c 3 -t 3000 "$output" > /dev/null
if [ $? -eq 0 ]; then
echo "node $output is up"
else
echo "node $output is down"
fi
done
ありがとうございました!
これは私が探していたものと思われます。私は最初の問題を知らなかった、と私は理解する。ありがとうございました! – user2683183
'cmd; if [$? -eq 0]; ''ほとんどの場合、 '' cmd ''に置き換えられます。それから。 –