如何配置对话框bash的取消按钮?

时间:2014-11-26 17:23:47

标签: bash shell

例如我想配置此对话框的取消按钮。

dialog --backtitle "Dialog - Form sample" \
 --form " Form Test - use [up] [down] to select input field " 21 70 18 \
 "Network-ID:" 2 2 "" 2 15 20 0\
 "Subnet Mask:" 4 2 "" 4 15 20 0\

我该怎么做?

2 个答案:

答案 0 :(得分:0)

另外,请注意$的解释?关于“是否选择取消” 可以反过来说:

选择“取消”时,只有$? -eq 1 而另一方面,当一个适当的菜单选择 被选中,$?是0(选择本身是另一个变量 你定义自己)。

示例代码:

exec 3>&1
result=$(dialog --title "Choose action from menu" \
       --menu "\n        Use arrows - UP/DOWN \n\                              
       Press [Enter] to select\n" 20 40 10 \
       "I"       "Installation" \
       "S"       "Check system" \
       "X"       "eXit" 2>&1 1>&3);

现在,默认情况下对话框还会显示“确定”和“取消”按钮。

如果用户选择了“OK”,那么$? = 0,$ result ='我'或'S'或'X' 如果用户选择了“取消”,$? = 1,$ result未定义('')

我的'对话 - 版本'是1.3-20160209

答案 1 :(得分:-1)

您可以使用包含最后一个命令返回值的$?。 这是一个示例代码:

dialog --backtitle "Dialog - Form sample" \
    --form " Form Test - use [up] [down] to select input field " 21 70 18 \
    "Network-ID:" 2 2 "" 2 15 20 0\
    "Subnet Mask:" 4 2 "" 4 15 20 0\

if test $? -eq 0
then 
   echo "ok pressed"
else
   echo "cancel pressed"
fi