设为首页 加入收藏

TOP

如何在Bash Shell脚本中显示对话框
2015-07-16 12:56:07 来源: 作者: 【 】 浏览:3
Tags:何在 Bash Shell 脚本 显示 对话

这个教程给出几个如何使用类似zenity和whiptail的工具在Bash Shell 脚本中提供消息/对话框的例子。使用这些工具,你的脚本能够告知用户当前程序运行的状态并能与用户进行交互。这两个工具的不同之处在于显示消息框或者对话框的方式。Zenity用GTK工具包创建图形用户界面,而whiptail则在终端窗口内创建消息框。


?


用zenity创建消息框或者对话框的命令是不言自明的,我们会给你提供一些例子来参考。


?


消息框截图


创建 Yes/No 询问对话框


问题截图


创建输入框并将输入值保存到变量中


输入框截图


输入后,值会保存在变量 $a 中。


这是一个获取用户姓名并显示的实际事例。


这些是运行前面脚本的截图。


例1-问题-1


框1


例1-输入框-1


输入框


例1-输入框-2


输入框


例1-输入框-3


输入框


例1-信息


信息框


别忘了查看也许能帮助到你的有用的zenity 选项


?


在Ubuntu上安装whiptail,运行


用whiptail创建消息框或者对话框的命令也是无需解释的,我们会给你提供一些基本例子作为参考。


?


whiptail消息框截图


?


whiptail对话框截图


?


whiptail输入框截图


尝试使用输入值要注意的一点是whiptail用stdout显示对话框,用stderr输出值。这样的话,如果你用 var=$(...),你就根本不会看到对话框,也不能获得输入的值。解决方法是交换stdout和stderr。在whiptail命令后面添加 3>&1 1>&2 2>&3 就可以做到。你想获取输入值的任何whiptail命令也是如此。


?


whiptail菜单截图


这是一个请求用户输入一个文件夹的路径并输出它的大小的 shell 脚本


这是之前例子的一些截图:


例2-输入框


输入框


例2-消息框


消息框


如果你在终端下工作,帮助手册总是有用的。


?


选择合适的工具显示对话框取决于你期望在桌面机器还是服务器上运行你的脚本。桌面机器用户通常使用GUI窗口环境,也可能运行脚本并与显示的窗口进行交互。然而,如果你期望用户是在服务器上工作的,(在没有图形界面时,)你也许希望能确保总能显示,那就使用whiptail或者任何其它在纯终端窗口显示对话框的工具。


via: http://linoxide.com/linux-shell-script/bash-shell-script-show-dialog-box/


作者:Ilija Lazarevic 译者:ictlyh 校对:wxy


本文由 LCTT 原创翻译,Linux中国 荣誉推出


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇深入理解JavaScript new的机制 下一篇C++ 能否成为你新的脚本语言?

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: