ホスト名リストを出力するコマンドを作成しました。たとえば、次のようになります。
clab148node11
clab148node12
clab148node15
clab148node16
ここで、pingに応答しないノードを削除したいと思います。今、次のようなものがあります。
for node in $nodes
do
result=$(ping -c 1 $node; echo $?)
done
$result
今、ゼロ以外のノードをどのように削除しますか?
ベストアンサー1
私は新しいリストを作成し、古いリストを新しいリストに置き換えることを好みます。
nodes="127.0.0.1 1.2.3.4 1.2.3.4 "
nodes_out=
for node in $nodes
do
ping -c 1 $node >/dev/null 2>&1 && nodes_out+=$node
done
nodes=$nodes_out