zsh 如果帮助: 如果ping不成功

4

如果我连接到互联网,我希望运行一个脚本。我的想法是将某个东西添加到crontab中,每隔5分钟运行一次,尝试ping一个web服务器,如果失败则运行一个命令,如果成功,则结束脚本。

伪代码:


```bash while True: response = ping(webserver) if response == "success": break else: run_command() sleep(300) ```
#!/bin/zsh
if ping IP is unsuccessful
  echo test
end
1个回答

9

ping 根据其成功与否设置退出状态。因此,您可以执行如下操作:

#!/bin/zsh
ping -c 1 myhost        # -c pings using one packet only
if [ $? -ne 0 ]; then
   echo "test"
fi

请注意,命令会将其退出状态($?)“惯例地”设置为非零值,如果它们遭受错误的话。
以上的另一个版本是:
#!/bin/zsh
if ping -c 1 myhost; then
   echo "test"
fi

更简洁。


如果你不想在终端输出中看到ping结果的话,可以这样写:if ping -c 1 myhost &>/dev/null; then - Colin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接