我有一个命令,如果可以访问特定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命令正确转换为破折号?
答案 0 :(得分:0)
sh
没有&>
。您需要使用bash -c ...
或一次重定向一个描述符:
sh -c "sleep 1 && if ping -c 1 stackoverflow.com > /dev/null 2>&1; then notify-send hi; fi"