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

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

Zenity 工具

在Ubuntu中安装zenity,运行:

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

创建消息框

创建 Yes/No 询问对话框

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

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

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

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

框1

输入框

输入框

输入框

信息框

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

Whiptail 工具

在Ubuntu上安装whiptail,运行

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

创建消息框

创建 Yes/No 对话框

创建有缺省值的输入框

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

创建菜单对话框

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

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

输入框

消息框

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

结论

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

责任编辑:

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

  1. linux桌面天气,如何在Ubuntu 20.04中显示我的天气指示器 · My Weather Indicator

    原标题:如何在Ubuntu 20.04中显示我的天气指示器 · My Weather Indicator 来自:https://www.linuxmi.com 如果你在寻找适用于Ubuntu的桌面天气 ...

  2. linux空格转义,如何在bash循环列表中转义空格?

    首先,不要这样做.最好的办法是正确使用find -exec: # this is safe find test -type d -exec echo '{}' + 另一个安全的方法是使用NUL终止列表 ...

  3. 详解Linux交互式shell脚本中创建对话框实例教程

    详解Linux交互式shell脚本中创建对话框实例教程 本教程我们通过实现来讲讲Linux交互式shell脚本中创建各种各样对话框,对话框在Linux中可以友好的提示操作者,感兴趣的朋友可以参考学习一 ...

  4. 详解Linux交互式shell脚本中创建对话框实例教程_linux服务器

    本教程我们通过实现来讲讲Linux交互式shell脚本中创建各种各样对话框,对话框在Linux中可以友好的提示操作者,感兴趣的朋友可以参考学习一下. 当你在终端环境下安装新的软件时,你可以经常看到信息 ...

  5. echo 在shell及脚本中显示色彩及闪烁警告效果

    在shell脚本编写中,echo用于输出字符串等提示信息,当我们需要格外显示色彩及闪烁效果如下: 一.在执行shell中显示色彩: 语法格式: echo -e "\033[颜色1:颜色2m ...

  6. Linux 有问必答:如何在Ubuntu或者Debian中启动后进入命令行

    Linux 有问必答:如何在Ubuntu或者Debian中启动后进入命令行 提问:我运行的是Ubuntu桌面,但是我希望启动后临时进入命令行.有什么简便的方法可以启动进入终端? Linux桌面自带了一 ...

  7. 任务栏上有计算机和网络图标,如何在Win7任务栏中显示计算机图标

    问题描述: 如何在Windows7系统任务栏中显示计算机图标 问题分析: Windows 7系统默认关闭了快速启动栏,引入了新的功能"库",锁定到任务栏的计算机默认仍然打开&quo ...

  8. linux脚本命令行交互,linux – 是否有可能使bash shell脚本与另一个命令行程序交互?...

    我在运行bash shell的Linux终端中使用交互式命令行程序.我有一个确定的命令序列,我输入到shell程序.程序将其输出写入标准输出.其中一个命令是'save'命令,它将上一个运行的命令的输出 ...

  9. linux shell 递增,如何在 Bash 中对变量递增或者递减

    原标题:如何在 Bash 中对变量递增或者递减 编写 Bash脚本时最常见的算术运算之一是递增和递减变量.这通常在循环中用作计数器,但它也可以在脚本的其他地方出现. 递增和递减意味着分别从数值变量的值 ...

最新文章

  1. PL/SQL 中Returning Into的用法
  2. 关于EF中批量添加的个人探索
  3. day 01 ————立志运维的第一天开始,承若书!
  4. ios 标准 #pragma mark的用法
  5. python写excel文件出错_【求教】xlutils修改中文Excel文件出错
  6. Linux 中如何安装卸载软件
  7. 使用代码删除IBASE object component
  8. Linux系统编程——线程(1)
  9. Android中插件开发篇总结和概述
  10. 网段和子网的区别_电焊石笼网与普通石笼网区别
  11. 剑指offer--两个链表的第一个公共结点
  12. atitit..国富论 在现代it企业项目管理中的作用attialx 总结---国富论读后感 attialx
  13. 加壳及脱壳《逆向工程》
  14. 【软件测试面试题】证券项目面试过程总结
  15. 《洛克菲勒留给儿子的38封信》
  16. keepalived配置虚拟IP
  17. 【枚举与countDownLatch的应用】
  18. java 法定节假日_java 获取n个工做往后的日期(包含法定节假日、双休日、节后补班)...
  19. 图像特征提取(纹理特征)
  20. Android TextView长按选择复制工具类

热门文章

  1. 一对一培训之视频免费分享-2017-12-09-第 03 阶段-准备-基础-架构-课件
  2. Opennms配置SNMP
  3. 数据库连接池之_c3p0
  4. 验证大小中括号是否成对闭合匹配
  5. zookeeper能做什么?
  6. 图(网)的存储结构(数组存储表示即邻接矩阵、邻接表)
  7. Docker监控:基于阿里云容器服务构建自己的Docker监控框架
  8. linux一句话问答(网络无关篇+网络相关篇+程序开发篇+经典图书)
  9. Win2003远程桌面报错:RPC错误 解决办法
  10. 业务、架构、技术,我们应该关注什么