0

如果可以访问特定 IP,我有一个命令应该在重新启动后打开程序。我使用 Debian,所以sh链接到dash. 我在系统启动后执行的代码是:

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 命令正确转换为破折号?

4

1 回答 1

0

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

sh -c "sleep 1 && if ping -c 1 stackoverflow.com > /dev/null 2>&1; then notify-send hi; fi"
于 2014-10-02T19:36:58.570 回答