我做了一个非常简单的脚本,它显示了一个dock对话框,并允许您在运行其他两个脚本之一来设置dock之间进行选择。但当您单击该按钮时,它不会关闭脚本。我如何让它在它完成它的事情后退出?
脚本如下:
#!/bin/bash
GTKDIALOG=gtkdialog
export MAIN_DIALOG='
<window title="Dock Selector" icon-name="gtk-about" resizable="true" width-request="310" height-request="310">
<vbox>
<hbox space-fill="true" space-expand="true">
<button>
<label>Deluxe (lots of eye candy, higher cpu usage)</label>
<action>switch-cairo && exit 1</action>
</button>
</hbox>
<hbox space-fill="true" space-expand="true">
<button>
<label>Light (low cpu usage)</label>
<action>switch-ocd && exit 1</action>
</button>
</hbox>
</vbox>
</window>
'
case $1 in
-d | --dump) echo "$MAIN_DIALOG" ;;
*) $GTKDIALOG --program=MAIN_DIALOG --center ;;
esac 下面是它调用的一个脚本:
#!/bin/sh
killall -9 ocd-Dock
killall -9 cairo-dock
cairo-dock -o
sed -i 's/cairo-dock -o/ocd-Dock/g' /usr/bin/autostart
exit编辑:是的,把&放在最后修复了它。干杯!
发布于 2016-02-04 14:30:47
您需要在后台启动另一个脚本。您的主脚本等待它退出,但由于某种原因,它没有...
您可以通过在命令后使用"&“来完成此操作(就像在注释中提到的那样),如下所示
*) $GTKDIALOG --program=MAIN_DIALOG --center & ;; 发布于 2016-02-04 14:41:40
看起来GTK或cairo dock的对话框中有该控件,使用"&“在后台运行它们,该控件应该会返回到您的脚本,这应该会解决您的问题。
https://stackoverflow.com/questions/35192942
复制相似问题