脚本不会退出

时间:2016-02-04 05:09:24

标签: linux bash gtk

我创建了一个非常简单的脚本,显示了一个gtkdialog,并允许您选择运行其他两个脚本中的一个来设置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

编辑:Yup,put&amp;最后固定它。干杯!

2 个答案:

答案 0 :(得分:0)

您需要在后台启动其他脚本。你的主脚本等待它退出,但由于某种原因它没有......

您可以使用&#34;&amp;&#34;来完成此操作(如评论中已经提到的那样)。在你的命令之后,像这样

*) $GTKDIALOG --program=MAIN_DIALOG --center & ;; 

答案 1 :(得分:0)

看起来GTK或cairo dock的对话框正在控制,使用&#34;&amp;&#34;在后台运行它们。并且控件应该返回到您的脚本,这应该可以解决您的问题。