正如标题所示,我试图使用bash来ping服务器,然后当它获得连接时,它会将Firefox打开到显示警报屏幕的页面。断电后,当计算机自动启动时会发生这种情况,有时可能需要一段时间才能连接到网络。如果我将Firefox设置为在启动时启动,则有时会显示无连接屏幕。
这是我已经拥有的,但是在成功ping之后它似乎没有停止。
#!/bin/bash
success=0
ping hercules
while [ $success -ne 1 ]; do
ping -c 4 hercules
if [ $? -eq 0 ]; then
success=0
/usr/bin/firefox
else
success=1
fi
done
我确信我做的事情非常愚蠢,这应该不会那么难。
答案 0 :(得分:6)
只是为了修复你的脚本,你可以在成功时退出脚本:
#!/bin/bash
while true ; do
if ping -c 4 hercules ; then
/usr/bin/firefox
exit 0
fi
done
答案 1 :(得分:2)
如果我理解你的问题,你想要的是继续ping。如果成功,启动firefox
,并停止ping?您目前在失败时设置success=1
,然后退出while
循环,因为success -ne 1
为false。
#!/bin/bash
success=0
ping hercules
while [ $success -ne 1 ]; do
ping -c 4 hercules
if [ $? -eq 0 ]; then
success=1
/usr/bin/firefox
fi
done
答案 2 :(得分:0)
#!/bin/bash
ping -t 1 8.8.8.8 #(-t on mac / else it -w)
SUCCESS=0
RETVAL=$?
while [ $SUCCESS -ne 1 ]; do
if [ $RETVAL -eq 0 ]; then
SUCCESS=1
'LAUNCH FIREFOX HERE IF THE PING WORKS'
else
'DO SOMETHING'
fi
done