请问这段Linux命令“ping -c 1 -w 1 ${network}.${sitenu} &> devnull && result=0 || result=1”

请问这段Linux命令“ping -c 1 -w 1 ${network}.${sitenu} &> devnull && result=0 || result=1”,第1张

ping -c 1,表示只发送一个icmp echo_request 包

-w 1 表示等待1s

在这1s的等待时间中,如果收到目标地址返回的icmp echo_response, 则ping命令的exit code是0, 否则exit code是1

&&分割两个命令, 如果第一个命令exit code是0则执行第二个命令,如果不是0则不执行

||分割两个命令,如果第一个命令exit code不是0则执行第二个命了,否则不执行

A &&B || C

可以这样理解, 如果A exit code 是0, 则执行B,如果B的exit code不是0,则执行C

如果A exit code 是0, 则执行B, 如果B的exit code是0, 则结束(执行C)

如果A exit code不是0, 则不执行B, 此时(A&&B这个命令组合exit code 等于A的exit code), 故此, 需要执行C

在你的例子中A:“ping -c ..." B:"result=0" C:"result=1"

因此就是当ping命令成功(exit code=0), 则执行result=0, (由于result=0 这个命令始终是成功的,所以就不会执行第三条命令)

当ping命令失败(exit code!=0), 则执行result=1

执行ping -c 1 -w 1 ${network}.${sitenu} &>/dev/null

如果成功, result=0

否则, result=1


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7482505.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-06
下一篇2023-04-06

发表评论

登录后才能评论

评论列表(0条)

    保存