Linux shell 对话框,如何在 Bash Shell 脚本中显示对话框

原标题:如何在 Bash Shell 脚本中显示对话框

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

Zenity 工具

在Ubuntu中安装zenity,运行:

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

创建消息框

8ca8d505dfc376687569e1a75c29d651.png

ad13a7a05d0a1d899c343f896560b53e.png

创建 Yes/No 询问对话框

80f2990be9e2a2711db7865ae296309f.png

cec67725588503e5ddb09d8b274bdc76.png

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

8d012e5159ddabb5a0e7a60976b138d6.png

d629b523e0924347b6dcfa37e0f73a8d.png

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

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

dd364b59213ab3a9e2b8e520e8b1e4d4.png

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

5f107b5b537c52b72f58ba15ec1c8912.png

框1

698cbde02382f99eba5687a9a1e1a5a7.png

输入框

3a83eca1879fdc8c78ee52a4028435c1.png

输入框

df79bf67cea8839b43a56106c9b6ee95.png

输入框

87700e6fd44db46aedb8317ce9488e53.png

信息框

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

Whiptail 工具

在Ubuntu上安装whiptail,运行

65b9d3c942ef90969247299449f5948c.png

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

创建消息框

92322c0964a09285df1b15a7ea5b123f.png

4c44a2fb1a5143302ff56d739e2fb6ca.png

创建 Yes/No 对话框

d1474c782bb2b363e32a38888f95e814.png

af3ebd2692adb2784f1548485ac50b41.png

创建有缺省值的输入框

f80483ee7dbf2b81776d63f4fcf408fd.png

39f745bb48fe4b0a824d202846fd63d9.png

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

创建菜单对话框

2d5b41c6600e24255effe958fc301d22.png

0453a6a528c72f7bf45e57e2eb33add0.png

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

718d69d74c8171210ec383154b054b63.png

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

52ef768888bad2456e6b4de12dbe64ac.png

输入框

bbd9a4ca021daa27742cb8d085ce9df6.png

消息框

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

结论

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

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值