Bash脚本在成功ping时打开firefox

时间:2014-09-04 13:13:31

标签: linux bash ping

正如标题所示,我试图使用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

我确信我做的事情非常愚蠢,这应该不会那么难。

3 个答案:

答案 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