对于Zenity的初步认识,结合shell脚本实现小小功能,通俗易懂!

本文介绍Zenity,一个用于Linux的图形化对话框工具,可通过Shell脚本调用。示例展示如何使用Zenity创建文件解压缩工具,包括压缩和解压功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于Zenity的初步认识,写一个小程序,利用shell脚本实现对文件的解压缩工具(实际上很简单)

linux下皆命令,这是我们都了解的,以其命令行操作带来的方便快捷而闻名。但随着应用越来越广泛,图形化应用程序的需求越来越多

什么是Zenity?

1、zenity 是一个开源的并且显示 GTK + 对话框的命令行并且使用shell脚本的一个 “应用程序”。
2、它允许在图形框中向shell发送信息或从图形框中获取shell返回的信息
3、该程序允许用户在命令行建立对话框,使得用户与shell之间的交互变得简单
4、******说白了,就是在linux里边都是命令,现在这个东西提供了一种图形化的窗口,来进行操作,而这个窗口要怎么实现,并且在shell脚本中应该如何来编写代码才能将这个图形界面的功能给表现出来,咱们接着往下看

如何来使用?

1、首先看看有没有安装zenity

这样的结果就表明存在在这里插入图片描述

出现上边的结果就表明zenity存在。
如果不存在就下载

在这里插入图片描述

用上边的命令就可以完成下载

下载完成之后,对于zenity来说 有许多功能:

–calendar 显示日历对话框

–entry 显示文本输入对话框

–error 显示错误对话框

–info 显示信息对话框

–file-selection 显示文件选择对话框

–list 显示列表对话框

–notification 显示通知

–progress 显示进度标识对话框

–question 显示问题对话框

–warning 显示警告对话框

–scale 显示范围对话框

–text-info 显示文本信息对话框

–display=DISPLAY X display to use

上述这些选项在linux命令窗口输入即可出现对应的图形窗口
例:
zenity --calendar
即可出现日历图形窗口

我们在这里通过一个例子来理解zenity

功能:实现对于文件的解压缩的小工具
首先我们编写shell脚本:
#! /bin/bash

# 这里先定义一个变量 name 用来保存用户输入的是 com 还是 decom 
name=$(zenity  --title="Uncompress"  --text "com(压缩) or decom(解压)"  --entry) 
#	这里的 zenity 就是告诉程序 利用图形化窗口
#	--title 表示这个窗口的标题 
#	--text  表示文本标题
#	--entry 表示zenity被要求生成一个文本框,用来输入--->用户输入的文本框	

###### 压缩
if [ $name = "com" ]
then
	filename=$(zenty  --title="compress(压缩)"  --text “Enter the file name to compress?”  --enty)
	dizp $filename
	exit
fi

###### 解压
if [ $name = "decom" ]
then
	filename=$(zenty  --title="uncompress(解压)"  --text "enter the file name to extract?"  --entry)
	dizp -d $filename
	exit
fi

shell脚本就写好了,接下来保存退出,更改脚本文件的执行权限,让其成为可执行文件
接下来就是运行:(这里shell脚本名称为uncompress.sh)

在这里插入图片描述

上图中输入 com 进入压缩
压缩(文本框输入要进行压缩的文件名称,这里笔者用该路当中的 1.txt 文件):在这里插入图片描述
压缩完成:

在这里插入图片描述

可以看到:这里压缩之后,将1.txt文件压缩成以 .gz 结尾的文件
接下来进行解压:

在这里插入图片描述

解压完成:

在这里插入图片描述

这样,1.txt就有解压为原来的状态
zenity的知识还有很多,这里知识通过一个小小的例子来认识zenity这个图形化的工具,初次编写,有不足之处还请多多谅解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值