我有一个Bash脚本,可以逐个ping一系列IP地址。如果每次ping的退出状态为0,则会输出节点已上线,否则该节点已下线。我能够完美地运行这个脚本,但是当Bash脚本结束时,退出状态总是为0。
我的目标是,例如在5个IP地址中,如果第3个失败了,则继续检查列表中的其余IP地址,但一旦脚本结束,抛出非0的退出状态并输出哪个IP地址失败了。
感谢您的提前帮助!
我的目标是,例如在5个IP地址中,如果第3个失败了,则继续检查列表中的其余IP地址,但一旦脚本结束,抛出非0的退出状态并输出哪个IP地址失败了。
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
感谢您的提前帮助!
cmd; if [ $? -eq 0 ]; then
几乎总是最好替换为if cmd; then
。 - Etan Reisner