每个系统管理员都需要使用shell脚本不时地自动执行许多日常工作。其实许多这些小帮手都是来源于命令行,而有时也需要通过用户输入。你可以使用Python一类成熟的编程语言来完成它,或者你也可以使用Zenity工具。 Zenity是基于GTK+的一个对话框工具,并为管理员提供了许多有用的用户输入输出的命令行窗口,能够很方便的应用于shell脚本之中。
虽然它的工具列表是比较有限的,但是仍然提供了日期选择器,文件/目录选择、列表框、消息框和进度条。Zenity不是一个直接脚本,而是在你的脚本中能够提供标准输出结果的工具。在这个Zenity教程中,我们浏览过很多关于怎样使用Zenity的练习实例,来……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
每个系统管理员都需要使用shell脚本不时地自动执行许多日常工作。其实许多这些小帮手都是来源于命令行,而有时也需要通过用户输入。你可以使用Python一类成熟的编程语言来完成它,或者你也可以使用Zenity工具。
Zenity是基于GTK+的一个对话框工具,并为管理员提供了许多有用的用户输入输出的命令行窗口,能够很方便的应用于shell脚本之中。虽然它的工具列表是比较有限的,但是仍然提供了日期选择器,文件/目录选择、列表框、消息框和进度条。Zenity不是一个直接脚本,而是在你的脚本中能够提供标准输出结果的工具。在这个Zenity教程中,我们浏览过很多关于怎样使用Zenity的练习实例,来把过去曾经易暴露的备份变的更加安全。
Zenity入门
快速谷歌搜索将找到许多Zenity教程和Zenity Manual官方网站的链接。你能够得到一种用Zenity来做什么的感觉,最好的办法是打开终端,并旋转它。Zenity有内置的帮助选项。它提供一个所有选项的列表,包括对每一个对话框附加的帮助。主要对话框的列表包括日历、输入、报错、消息、文件选择、清单、通知、进展、问题、警告、比例和文字信息。
许多对话框有一些简单的选项设置,例如文本输入对话框。选项包括—进入-默认文本,文本显示在输入框的上面;--隐藏-当你输入密码的时候掩饰你的输入。如果在终端上输入简单的命令,你会看到对话框,并且结果将返回给屏幕。一个例子:使用—进入命令可能看上去像下面这样:
$ zenity --entry --text=”Please enter your name”
有时候你会根据用户不同的输入采取不同的行动,例如,点击取消键。这种类型的交互是需要一些shell脚本来捕获对话框的输出,但这并不复杂。如果你不熟悉shell或Bash脚本,你可以在网上查找一些很实用的关于Bash的编程入门教程。如果你更喜欢纸质书,你可以试一试最新版的Unix和Linux 系统管理手册。它有一整章是关于脚本的介绍,其它31章也是与shell相关的,这是作为一个Linux系统管理员需要掌握的。
文件和目录
在脚本中较常见的任务之一就是使用正在执行的任务来选择一个需要的文件或目录。Zenity的文件选择对话框提供访问标准GTK+文件对话框和输出已选文件的所有路径。这个对话框包括许多选项:-- 确定-使用关联文件的覆盖,--保存提示-如果选择使用现有的文件,结果就将覆盖当前的文件。
下面这行脚本将显示一个文件选择对话框和这个strFileName变量中存储的结果:
$ strFileName=$(zenity --file-selection --save --confirm-overwrite); echo $strFileName
‘$’后面的‘=’ 促使Bash来替换Zenity命令输出,作为一个为strFileName变量赋值的目标。用前面的字符‘$’ 来代替echo命令的参数变量strFileName,结果会返回到终端屏幕。
文件选择对话框的其它选项包括:--multiple用来选择多个文件;--file-设置文件过滤器要显示的东西;--directory用于激活目录只读模式。在显示文件选择对话框之前,很容易了解文本输入对话框到选择过滤模式之间是如何联系起来的。当使用--multiple选项时,你也能够使用--separator选项来设定什么字符将用来分割文件名。如果你没有设定的话,将默认使用‘|’。
总结
通过一个小实验,你应该能够掌握如何把Zenity对话框添加到一个已存在或新的脚本里。任何需要用户输入的脚本都将是一个很好的对象,以及需要使用标准框来显示输出。--list选项完成一个伟大的解决方案,如果你需要从用户的选择中显示资料一览表。有许多像文件选择对话框一样的选项,如--checklist和--radiolist用来设置复选框或单选按钮的第一列。
下面是一个简单的单行文件工具来搜索.log文件,并显示在ListBox的对话框中:
x=$(find / -name “*.log” |zenity --list --column “Delete” --column “Files” --checklist --height 600 --width 600 --separator=”,”); echo $x
Zenity是很值得花时间努力学习怎样有效的使用它。一旦你开始使用,就不会后悔。
作者
相关推荐
-
托管OpenStack私有云能够获得支持or单打独斗?
OpenStack私有云托管作为一种服务可以简化企业的部署和运营,并强调了云计算的优势,而非Linux的优化……
-
从零开始构建属于自己的Linux发行版
当你从头开始构建Linux,就可以充分和完整地了解Linux平台。Linux管理员在IT界内更神秘,因为他比其他任何IT专业人员都更了解计算机内部工作。
-
使用Red Hat或Debian包管理器简化Linux管理
Linux软件包管理使用的软件库,它提供了软件包的安装源。Red Hat和Debian的软件包管理器功能类似,但结构上的差异将影响Linux管理。
-
关于apt-get:非Linux管理员应该知道的那些事
Apt-get是广泛应用在Unix和Linux系统中的应用程序管理器,Windows和Linux管理员也可以受益于其功能。