我正在尝试编写一个脚本来在他们自己的 x 会话中启动 xfce 和 xbmc。
为此,我正在设置DISPLAY
值,在后台运行第一个值并等待直到我从xset q
. 然后我改变DISPLAY
并为另一个做同样的事情。
我正在逐篇编写这篇文章,以检查每个部分的语法是否正确,而我坚持的部分是“等到我从xset q
.
export DISPLAY=":0.0"
while [[ ! `xset q` ]]
do
echo -n "."
done
这段代码似乎可以工作,所以当 XFCE 运行时它会立即退出,当它不运行时它会在那里打印.xset: unable to open display ":0.0"
但是我不想看到的输出,xset
所以我试图重定向它的输出。
export DISPLAY=":0.0"
while [[ ! `xset q > /dev/null 2>&1` ]]
do
echo -n "."
done
然而,添加此重定向似乎会破坏检测,并且无论 XFCE 是否正在运行,它都只是坐在那里打印点。
我已经单独测试了这两个命令,并在自己的 shell 脚本中测试了它们都按我的预期工作,当 XFCE 未运行时返回 1,当它运行时返回 0。
谁能解释为什么把这个命令放在里面会[[ ! `…` ]]
破坏while
测试以及我如何while
正确地重写这个循环?
(在拱门上运行)