我认为这需要改成while循环,目前它会等待所有10000个ping完成,我需要在ping成功时返回。 "say"程序在OSX上用于让电脑说话。
#!/bin/bash
echo begin ping
if ping -c 100000 8.8.8.8 | grep timeout;
then echo `say timeout`;
else echo `say the internet is back up`;
fi
好的,我没有回答自己问题的权限,所以在尝试过程中,这是我的答案:
谢谢,是的,直到现在我都不知道$?。无论如何,现在我已经完成了它。我喜欢你的方法不会一直运行,但在我的情况下,我不需要它停止直到完成。
#!/bin/bash
intertube=0
echo "begin ping"
while [ $intertube -ne 1 ]; do
ping -c 3 google.com
if [ $? -eq 0 ]; then
echo "ping success";
say success
intertube=1;
else
echo "fail ping"
fi
done
echo "fin script"
say
从未输出任何内容到标准输出。 - Lawrence Velázquez-o
选项)和 MacOs(具有该选项)。 - Gabriel Staples