如果IP是可ping的,那么做一些事情(将bash命令转换为破折号)

时间:2014-10-02 19:27:50

标签: bash dash-shell

我有一个命令,如果可以访问特定IP,则应该在重启后打开程序。我使用Debian,因此shdash相关联。系统启动后执行的代码是:

sh -c "sleep 10 && if ping -c 1 stackoverflow.com &> /dev/null; then gedit; fi"

但是使用此代码,gedit将在每种情况下打开。

如果我尝试使用bash控制台

sleep 10 && if ping -c 1 stackoverflow.com &> /dev/null; then gedit; fi

然后它正常工作。那么如何将bash命令正确转换为破折号?

1 个答案:

答案 0 :(得分:0)

sh没有&>。您需要使用bash -c ...或一次重定向一个描述符:

sh -c "sleep 1 && if ping -c 1 stackoverflow.com > /dev/null 2>&1; then notify-send hi; fi"