如何使用Zenity在bash脚本中显示GUI对话框

如何使用Zenity在bash脚本中显示GUI对话框

每个人都知道Linux bash脚本是Linux的真正优势。脚本通常需要显示图形用户界面(GUI),以促进用户交互。 GUI使您的脚本更加用户友好和美观。

对于Shell脚本GTK,Linux上有许多可用的选项和工具。

本文将向您展示如何使用Zenity在Bash脚本中显示GUI对话框。

Zenity是一个开源应用程序,用于在Shell脚本中显示简单的GUI。 通过显示GTK +对话框,使您的脚本更加用户友好。 Zenity是用于创建现代Shell脚本的便捷命令行工具。 Zenity是易于使用的跨平台应用程序。

先决条件

具有root特权的sudo用户。

安装Zenity

Zenity是GNOME桌面的一部分,默认情况下已在大多数Linux发行版中安装。您可以通过在终端中运行以下命令来验证系统上是否已安装Zenity:

zenity --version

如果您的系统上未安装Zenity 易于dnf 或者 吃豆人 对于基于Ubuntu / Debian的系统:

sudo apt-get install zenity

对于基于RedHat的系统:

dnf install zenity

对于基于Arch的系统:

pacman -S zenity

Zenity常规选项

您可以在Zenity中单独使用一些常用选项。常用选项是-title,-window-icon,-width,-height和-timeout。

您可以使用— title选项指定对话框窗口的标题。

您可以使用–window-icon选项指定将在“ Zenity”对话框中用作图标的图标。

不仅如此,还可以通过使用Zenity命令设置–width和–height选项来设置Zenity对话框的宽度和高度。

对话框自动关闭后,可以使用–timeout选项设置对话框超时。

Zenity消息框

您可以从终端使用简单的Zenity命令来创建基本的和良好的GUI消息对话框。 Zenity可以使用四种类型的消息对话框。

  • 信息
  • 错误
  • 问题
  • 警告

1.信息对话框

您可以通过在终端中运行以下命令来创建信息对话框:

zenity --info --text="Software Update Available." --width=500

2.错误对话框

运行以下命令以显示错误对话框

zenity --error --text="Error In Installation" --title="Error" --width=500 --width=200

使用bash脚本显示错误对话框

3.问题对话框

您可以通过运行以下命令轻松地询问“是”或“否”问题:

zenity --question --text="Do you want to reboot pc?" --width=200

bash对话框您可以将ZenityQuestionDialog与以下shell脚本一起使用:

#/bin/bashtouch demo.txtif zenity --question --title="Confirm deletion" --text="Are you sure you want to demo.txt file?" --no-wrap    then    rm demo.txt    zenity --info --title="Success" --text="demo.text was removed" --no-wrapfi

4.警告对话框

zenity --warning --title="Update Available" --text="OS Update required" --width=200

Bash警告显示对话框

注意

您可以使用Zenity查看通知。

zenity --notification --text "Good Morning"

使用bash脚本在GNOME中显示桌面通知

Zenity输入框

Zenity允许您创建一个简单的对话框,该对话框接收用户的输入并将其显示为标准输出。

以下是一些输入框:

日历

[カレンダー]对话框中显示一个日历,并返回用户选择的日期作为标准输出。

zenity --calendar
Output:17/04/21

来自bash脚本的日历输入

文字输入对话框

您可以使用–entry选项创建文本输入对话框。如果您想要求用户输入文本,这将非常有用。

zenity --entry --title "User Info" --text "Please enter your name"

列表对话框

您可以使用–list选项创建一个多列对话框。在这里,您需要在列表对话框中逐列和逐行输入数据。您可以在列表对话框中使用复选框或重做框,如下所示。

zenity --list  --title "Choose Processor" --radiolist  --column "ID" --column="Name" 1 AMD 2 Intel

列表对话框

您也可以使用-list选项指定一个复选框以进行多项选择。

使用bash的复选框选项

zenity --list --title "Packages" --list  --text "select packages you want to install" --checklist --column "id"  --column "Name" 1 "Google Chrome" 2 "VLC" 3 "Firefox" 4 "GIMP"
OutputGoogle Chrome|VLC|Firefox

颜色选择对话框

您可以使用–color-selection选项从用户那里获得颜色选择值。

zenity --color-selection --show-palette

Bash脚本颜色选择器

文件选择对话框

您可以使用–file-selection选项将所选文件或目录捕获为标准输出。 您也可以使用–file-selection选项保存文件。

zenity --file-selection --multiple --filename "/"

从bash打开文件选择框

进度对话框

您可以使用–progress选项创建一个不错的进度栏。这对于向用户显示应用程序或脚本完成的进度条非常有用。使用以下命令下载进度条。

(wget -r  --no-parent patch -A.tar.gz http://157.245.99.119/latest/ -P /tmp 2>&1 ) | sed -u 's/.* ([0-9]+%) +([0-9.]+.) (.*)/1n# Downloading at 2/s, ETA 3/' | zenity --progress --title="Downloading File..." --percentage=1 --pulsate

有关高级进度选项,请在终端中运行以下命令

zenity --help-progress

可用于其他Zenity选项 人的热情Zenity-帮助..

结论

在上面的指南中,您学习了如何使用Zenity编写bash脚本以显示GUI对话框,并使Bash脚本更加用户友好。如有任何疑问,请随时与我们联系。

Sidebar