Zenity - 在命令行和 Shell 脚本中创建图形 (GTK+) 对话框
GNU Linux,建立在非常强大的内核之上的操作系统,称为Linux。 Linux 以其命令行操作而闻名。随着 Linux 在日常和桌面计算中的发明,nix 不再偏向命令行,它同样是图形化的,开发图形应用程序不再是一项艰巨的任务。
在本文中,我们将讨论使用名为“Zenity”的 GTK+ 应用程序创建和执行简单的图形对话框。
什么是禅宗?
Zenity 是一个开源跨平台应用程序,它在命令行中并使用 shell 脚本显示 GTK+ 对话框。它允许在图形框中向/从 shell 询问和呈现信息。该应用程序允许您在命令行中创建图形对话框,并使用户和 shell 之间的交互变得非常容易。
还有其他替代方案,,但没有什么能比得上 Zenity 的简单性,特别是当您不需要复杂的编程时。 Zenity,一个你必须掌握的工具。
禅尼特特点
- 自由和开源软件
- 跨平台应用
- 允许 GTK+ 对话框执行
- 命令行工具
- Shell 脚本支持
用处
- 轻松创建图形用户界面
- 比其他复杂工具功能更少
- 使 shell 脚本能够与 GUI 用户交互
- 可以为图形用户交互创建简单的对话框
由于Zenity可用于所有已知的主要平台,并且基于GTK+库,Zenity程序可以移植到另一个平台或从另一个平台移植。
在 Linux 中安装 Zenity
Zentity 默认安装在当今大多数标准 Linux 发行版的存储库中或可用。您可以通过执行以下命令来检查是否已安装到您的计算机上。
ravisaive@tecmint:~$ zenity --version
3.8.0
ravisaive@tecmint:~$ whereis zenity
zenity: /usr/bin/zenity /usr/bin/X11/zenity /usr/share/zenity /usr/share/man/man1/zenity.1.gz
如果尚未安装,您可以使用 Apt 或 Yum 命令安装它,如下所示。
ravisaive@tecmint:~$ sudo apt-get install zenity [on Debian based systems]
root@tecmint:~# yum install zenity [on RedHat based systems]
此外,您还可以从源文件构建它,使用以下链接下载最新的 Zenity 源包(即当前版本 3.8)。
- http://ftp.gnome.org/pub/gnome/sources/zenity/
Zenity 基本对话框
Zenity的一些基本对话框,可以直接从命令行调用。
1. 快速日历对话框怎么样?
root@tecmint:~# zenity --calendar
2. 错误对话框
root@tecmint:~# zenity --error
3. 通用文本输入对话框
root@tecmint:~# zenity --entry
4. 信息对话框
root@tecmint:~# zenity --info
5. 问题对话框
root@tecmint:~# zenity --question
6. 进度条
root@tecmint:~# zenity --progress
7. 比例对话框
root@tecmint:~# zenity --scale
8. 密码对话框
root@tecmint:~# zenity --password
9. 表单对话框
root@tecmint:~# zenity --forms
10.关于对话框
root@tecmint:~# zenity --about
创建 Shell 脚本对话框
现在我们将在这里讨论使用简单的 shell 脚本创建 Zenity Dialog。虽然我们可以通过直接从 shell 执行 Zenity 命令来创建单个对话框(就像我们上面所做的那样),但是我们无法链接两个对话框以获得一些有意义的结果。
一个交互式对话框怎么样,它接受您的输入并显示结果。
#!/bin/bash
first=$(zenity --title="Your's First Name" --text "What is your first name?" --entry)
zenity --info --title="Welcome" --text="Mr./Ms. $first"
last=$(zenity --title="Your's Last Name" --text "$first what is your last name?" --entry)
zenity --info --title="Nice Meeting You" --text="Mr./Ms. $first $last"
将其保存到“anything.sh”(按照惯例),并且不要忘记使其可执行。对 anything.sh 文件设置 755 权限并运行脚本。
root@tecmint:~# chmod 755 anything.sh
root@tecmint:~# sh anything.sh
关于脚本描述
传统的 shebang 又名 hashbang
#!/bin/bash
在下面的行中,“first”是一个变量,变量的值是在运行时生成的。
- ‘-entry’表示要求 zenity 生成一个文本输入框。
- ‘– title=’定义生成文本框的标题。
- “—text=”定义文本输入框中可用的文本。
first=$(zenity --title="Your's First Name" --text "What is your first name?" --entry)
下面脚本文件的这一行用于生成信息(-info)对话框,标题为“Welcome”,文本为“Mr./Ms.first”
zenity --info --title="Welcome" --text="Mr./Ms. $first"
脚本的这一行与脚本的第二行类似,只是这里定义了一个新变量“last”。
last=$(zenity --title="Your's Last Name" --text "$first what is your last name?" --entry)
脚本的最后一行再次与脚本的第三行类似,它生成包含变量“$first”和“$last”的信息对话框。
zenity --info --title="Nice Meeting You" --text="Mr./Ms. $first $last"
有关如何使用 shell 脚本创建自定义对话框的更多信息,请访问以下参考页面 Zenity。
- https://help.gnome.org/users/zenity/stable/
在下一篇文章中,我们将把 Zenity 与更多用于 GUI 用户交互的 shell 脚本集成。在此之前,请继续关注并连接到 Tecmint。不要忘记在评论部分提供您宝贵的反馈。