图形化桌面环境中的脚本编程

这篇博客介绍了如何在图形化桌面环境中使用shell脚本创建交互式菜单,包括文本菜单的创建、使用select命令,以及通过dialog包制作窗口。详细讲解了dialog的msgbox、yesno、inputbox、textbox、menu和fselect等部件的使用,还涵盖了在KDE和GNOME环境下使用kdialog和zenity创建图形窗口部件的方法。
摘要由CSDN通过智能技术生成

一、创建文本菜单

创建交互式shell脚本最常用的方法是使用菜单。

shell脚本菜单的核心是case命令。

1.1.创建菜单布局

clear命令用当前终端会话的terminfo数据来清理出现在屏幕上的文本。运行clear命令之后,可以用echo命令来显示菜单元素。

制表符和换行符,要在echo命令中包含这些字符,必须用-e选项。

菜单拼接的-en选项会去掉末尾的换行符。

执行后如下

 创建菜单的最后一步是获取用户输入。

在read命令中用了-n选项来限制只读取一个字符。

 再次执行

1.2.创建菜单函数

shell脚本菜单选项作为一组独立的函数实现起来更为容易。

通常我们会为还没有实现的函数先创建一个桩函数(stub function)。桩函数是一个空函数,或者只有一个echo语句,说明最终这里里需要什么内容

function diskspace {

clear

echo "This is where the diskspace commands will go"

}

还有一点有助于制作shell脚本菜单,那就是将菜单布局本身作为一个函数来创建。

1.3.添加菜单逻辑

case命令应该根据菜单中输入的字符来调用相应的函数。

 执行

 这段代码首先用menu函数清空屏幕并显示菜单。menu函数中的read命令会一直等待,直到用户在键盘上键入了字符。然后,case命令就会接管余下的处理过程。case命令会基于返回的字符调用相应的函数。在函数运行结束后,case命令退出。

1.4.整合shell脚本菜单

下面是一个完整的菜单脚本的例子

 这个脚本首先创建了三个函数,都是常见的Linux系统的管理信息。再使用while一直循环显示菜单函数,除非用户选择0退出循环。

1.5.使用select命令

select命令只需要一条命令就可以创建出菜单,然后获取输入的答案并自动处理。

select variable in list

do

commands

done

list参数是由空格分隔的文本选项列表,这些列表构成了整个菜单。select命令会将每个列表项显示成一个带编号的选项,然后为选项显示一个由PS3环境变量定义的特殊提示符。

二、制作窗口

dialog包最早是由Savio Lam创建的一个小巧的工具,现在由Thomas E. Dickey维护。

该包能够用ANSI转义控制字符在文本环境中创建标准的窗口对话框。

2.1.dialog包

dialog命令使用命令行参数来决定生成哪种窗口部件(widget)。一下是部件的说明。

  • calendar           提供选择日期的日历

  • checklist           显示多个选项(其中每个选项都能打开或关闭)

  • form                 构建一个带有标签以及文本字段(可以填写内容)的表单<

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值