当前位置:   article > 正文

linux脚本怎么发送到桌面,如何在Linux上使用Zenity创建简单的图形Shell脚本

linux zenity

859eafbd715673a0c9037234332b2481.png

Zenity使用单个命令为shell脚本添加了图形界面。 Shell脚本是自动化重复任务的好方法,但是它们通常只限于终端 - Zenity将它们从终端中导出到桌面上。

我们已经介绍了过去的shell脚本 。 你不必是一个程序员来开始使用shell脚本 - 他们只需要知道Linux终端命令。

804298a7e3bfc382fa658d942e4dfa58.gif

获得Zenity

Zenity自带的Ubuntu默认情况下。 如果您使用Ubuntu衍生产品(如Kubuntu),则可能需要使用以下命令手动安装:sudo apt-get install zenity

Zenity是GNOME的一部分,因此它应该已经包含在使用GNOME桌面的Linux发行版上。 如果你没有zenity包,请检查你的包管理器。

使用Zenity

你可以从终端玩Zenity。 假设您想要在shell脚本出现问题时创建一个错误窗口。 下面是一个你可以使用的示例命令:zenity -error -title =“发生错误”-text =“运行shell脚本时发生问题。

774999acd67c333a77ccaa5e53e9328f.png

运行命令,您将看到一个带有消息的窗口。

faaaacf06828fcd33e833996068aa1e5.png

将这个单一的命令放入你的shell脚本在正确的地方,你会有一个图形的错误信息。 您还可以使用变量来包含有关错误的更多信息。

让我们说你想问一个是或否的问题。 你可以使用这样的命令:zenity -question -title =“Query”-text =“要运行脚本吗?

2d4bda19d6d81adbd6da377bacaace7f.png

您可以在shell脚本中捕获yes或no响应,并根据用户单击哪个按钮执行不同的命令。

0aec7755461e4d9864dd93d5fb48e2ad.png

还有一个文本输入对话框:zenity -entry -title =“喜欢的网站”-text =“你最喜欢的网站是什么?

312e07927a636b733507df2e78cec734.png

在shell脚本中捕获用户的输入,您可以将其作为变量存储。

e18bcadf7a43b17705b800f6a99144c0.png

还有一个文件选择器,日历和其他类型的对话框。 有关对话框类型及其选项的完整列表,请参阅Zenity的手册页 。

示例脚本

让我们尝试使用Zenity创建一个简单的图形shell脚本。 只需三个命令,我们就可以创建一个图形定时程序:#!/ bin / bash

#此脚本询问用户一段时间,等待指定的数量

时间,并显示一个警报对话框。

TIME = $(zenity -entry -title =“Timer”-text =“输入计时器的持续时间。\ n \ n使用5秒5秒,10分钟10分钟或2小时2小时。

睡眠$ TIME

zenity -info -title =“Timer Complete”-text =“计时器结束了。\ n \ n已经$ $。

699b99a8a5711d9a1fe699733885c9c8.png

我们在这里使用一些额外的技巧。 我们从第一个zenity命令获取TIME变量的值,并将其馈送到sleep命令。 我们还使用/ n在zenity对话框中创建新的文本行。

在保存shell脚本并对其运行chmod + x命令以赋予其可执行权限后,我们可以启动它。

af41fa058de799a280a2043dab8112f8.png

输入持续时间,脚本将使用标准睡眠命令在后台倒计时。 当sleep命令的计时器完成时,脚本将显示zenity信息消息。

6cf60f9f2751edf99ec70c290fe3f418.png

您可以为此脚本创建桌面或面板快捷方式,并运行它,甚至不Touch终端。

这只是抓着你可以用zenity做什么的表面; 你可以使用它来做更复杂的程序。 如果你正在寻找有关shell脚本的更多信息,请参阅我们的在shell脚本中使用for循环的指南 。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/559398
推荐阅读
相关标签
  

闽ICP备14008679号