3

如果我连接到互联网,我想运行一个脚本。我想的方式是我 crontab 每隔 5 分钟运行一次,它会尝试对网络服务器执行 ping 操作,如果不成功则运行命令,如果成功,我希望它结束​​脚本。

伪代码:

#!/bin/zsh
if ping IP is unsuccessful
  echo test
end
4

1 回答 1

7

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

哪个更简洁。

于 2013-02-22T09:43:02.160 回答