简介

zenity是一个程序,它将显示图形框,并返回(在返回代码中,或标准输出中)用户的输入。这允许您从各种shell脚本中呈现信息,并向用户索取信息,实现图形化与用户交互

语法格式

zenity [参数]

安装zenity

Debian系统

apt install -y zenity

Redhat系统

yum install -y zenity

查看帮助

zenity --help

输出如下

帮助选项:
-h, --help 显示帮助选项
--help-all 显示全部帮助选项
--help-general 显示常规选项
--help-calendar 显示日历选项
--help-entry 显示文字输入选项
--help-error 显示错误选项
--help-info 显示信息选项
--help-file-selection 显示文件选择选项
--help-list 显示列表选项
--help-notification 显示通知图标选项
--help-progress 显示进度选项
--help-question 显示问题选项
--help-warning 显示警告选项
--help-scale 显示范围选项
--help-text-info 显示文本信息选项
--help-color-selection 显示颜色选择选项
--help-password 显示口令对话框选项
--help-forms 显示表单对话框选项
--help-misc 显示杂类选项
--help-gtk 显示 GTK+ 选项

应用程序选项:
--calendar 显示日历对话框
--entry 显示文本输入对话框
--error 显示错误对话框
--info 显示信息对话框
--file-selection 显示文件选择对话框
--list 显示列表对话框
--notification 显示通知
--progress 显示进度指示对话框
--question 显示问题对话框
--warning 显示警告对话框
--scale 显示范围对话框
--text-info 显示文本信息对话框
--color-selection 显示颜色选择对话框
--password 显示口令对话框
--forms 显示表单对话框
--display=DISPLAY X display to use

常用参数

--calendar  快速日历对话框

示例

zenity命令-显示图形框_表单

输出为

2022年02月27日
--error  错误对话框

示例

zenity --error --title="错误" --text="发生了错误"
--error # 输出为错误信息,对话框显示为红色
--title # 自定义对话框标题
--text # 自定义错误信息

输出如下

zenity命令-显示图形框_缩放_02

--entry 一般文本输入对话框

示例

zenity --entry --title="Input" --text="Please Input..."

在弹出的对话框中输入信息则返回对应输入信息

zenity命令-显示图形框_显示文件_03

输出如下

zenity命令-显示图形框_缩放_04

--info 信息对话框,同error只不过显示框为蓝色

示例

zenity --info

输出如下

zenity命令-显示图形框_缩放_05

--question 问题对话框

示例

当用户点击确定执行某操作,取消则不操作,通过点击确定或者取消的返回值来确定

qs=$(zenity --question --text="hello test")
num=$?
if [ ${num} -ne 0 ]
then
echo "用户取消"
else
echo "用户确定操作"
fi

运行脚本

zenity命令-显示图形框_显示文件_06

点击是和否输出不同

zenity命令-显示图形框_显示文件_07

--scale 缩放对话框

示例

zenity --scale

zenity命令-显示图形框_显示文件_08

返回值为缩放框调整的值

--password 密码框

示例

zenity --password

输入为非明文显示的密码,输出为明文密码

zenity命令-显示图形框_显示文件_09

--file-selection 文件选择

示例

zenity --file-selection

弹出文件选择框,选择单个文件,返回为文件的完整路径

zenity命令-显示图形框_表单_10

zenity命令-显示图形框_表单_11

案例

使用一个案例来演示zenity在shell脚本中的应用

脚本要求用户输入姓名并显示,选择文件名并显示

#!/bin/bash
#Time: 2022-02-25
#Email:
#File: zenity_test.sh
#Project:
#Description:
#How Use:
First_name=$(zenity --entry --title="姓" --text="请输入姓氏")
Last_name=$(zenity --entry --title="请输入名字" --text="请输入名字")
zenity --info --text="Hello ${First_name}${Last_name}"
File_name=$(zenity --file-selection --title="选择文件")
zenity --info --text="你选择的文件是${File_name}"