PUB:20150413 How to Show Dialog Box from Bash Shell Script with Examples

@ictlyh
This commit is contained in:
wxy 2015-06-02 20:36:32 +08:00
parent cd5aa96ccc
commit 559efb585d

View File

@ -1,6 +1,7 @@
如何在Bash Shell脚本中显示对话框以及事例
如何在Bash Shell脚本中显示对话框
================================================================================
这个教程给出几个如何使用类似zenity和whiptail的工具在Bash Shell 脚本中提供消息/对话框的例子。使用这些工具你的脚本能够告知用户当前程序运行的状态以及有与其交互的能力。这两个工具的不同之处在于显示消息框或者对话框的方式。Zenity用GTK工具包创建图形用户界面而whiptail在终端内部创建消息框。
这个教程给出几个如何使用类似zenity和whiptail的工具在Bash Shell 脚本中提供消息/对话框的例子。使用这些工具你的脚本能够告知用户当前程序运行的状态并能与用户进行交互。这两个工具的不同之处在于显示消息框或者对话框的方式。Zenity用GTK工具包创建图形用户界面而whiptail则在终端窗口内创建消息框。
### Zenity 工具 ###
@ -8,21 +9,21 @@
sudo apt-get install zenity
由于用zenity创建消息框或者对话框的命令是相当自解释的,我们会给你提供一些例子
用zenity创建消息框或者对话框的命令是不言自明的,我们会给你提供一些例子来参考
### 创建消息框 ###
zenity --info --title "Information Box" --text "This should be information" --width=300 --height=200
zenity --info --title "Information Box" --text "This should be information" --width=300 --height=200
![消息框截图](http://blog.linoxide.com/wp-content/uploads/2015/03/Screenshot-Information-Box.png)
创建 Yes/No 对话框
创建 Yes/No 询问对话框
zenity --question --text "Do you want this?" --ok-label "Yeah" --cancel-label="Nope"
![问题截图](http://blog.linoxide.com/wp-content/uploads/2015/03/Screenshot-Question.png)
创建输入框并在变量中保存值
创建输入框并将输入值保存到变量中
a=$(zenity --entry --title "Entry box" --text "Please enter the value" --width=300 --height=200)
echo $a
@ -75,7 +76,7 @@ zenity --info --title "Information Box" --text "This should be information" --wi
信息框
别忘了查看也许能帮助到你的有用的[zenity 选项][1]
别忘了查看也许能帮助到你的有用的[zenity 选项][1]
### Whiptail 工具 ###
@ -83,7 +84,7 @@ zenity --info --title "Information Box" --text "This should be information" --wi
sudo apt-get install whiptail
用whiptail创建消息框或者对话框的命令也是相当自解释的,我们会给你提供一些基本例子。
用whiptail创建消息框或者对话框的命令也是无需解释的,我们会给你提供一些基本例子作为参考
### 创建消息框 ###
@ -103,7 +104,7 @@ zenity --info --title "Information Box" --text "This should be information" --wi
![whiptail输入框截图](http://blog.linoxide.com/wp-content/uploads/2015/03/Screenshot-whiptail-entry.png)
尝试使用输入值要注意的一点是whiptail用stdout显示对话框用stderr输出值。那样的话,如果你用 var=$(...),你不会看到对话框也不能获得输入的值。解决方法是交换stdout和stderr。在whiptail命令后面添加 **3>&1 1>&2 2>&3** 就可以做到。你想获取输入值的任何whiptail命令也是如此。
尝试使用输入值要注意的一点是whiptail用stdout显示对话框用stderr输出值。这样的话,如果你用 var=$(...),你就根本不会看到对话框也不能获得输入的值。解决方法是交换stdout和stderr。在whiptail命令后面添加 **3>&1 1>&2 2>&3** 就可以做到。你想获取输入值的任何whiptail命令也是如此。
### 创建菜单对话框 ###
@ -157,7 +158,7 @@ zenity --info --title "Information Box" --text "This should be information" --wi
### 结论 ###
选择合适的工具显示对话框取决于你期望在桌面机器还是服务器上运行你的脚本。桌面机器用户通常使用窗口环境,更可能用显示的窗口运行脚本和交互。然而,如果你期望用户是在服务器上工作的,你也许会希望安全地显示,并使用whiptail或者任何其它在纯终端窗口显示对话框的工具。
选择合适的工具显示对话框取决于你期望在桌面机器还是服务器上运行你的脚本。桌面机器用户通常使用GUI窗口环境也可能运行脚本并与显示的窗口进行交互。然而如果你期望用户是在服务器上工作的在没有图形界面时你也许希望能确保总能显示那就使用whiptail或者任何其它在纯终端窗口显示对话框的工具。
--------------------------------------------------------------------------------
@ -165,7 +166,7 @@ via: http://linoxide.com/linux-shell-script/bash-shell-script-show-dialog-box/
作者:[Ilija Lazarevic][a]
译者:[ictlyh](https://github.com/ictlyh)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出