文本菜单:
1.创建菜单布局:
通过echo给予特定的参数来输出制表符之类的格式控制字符,来控制菜单布局的美观
2.创建菜单函数:
针对每一个菜单创建独立的shell函数,然后,把他们当做独立函数在代码中分布开来 通常会为还没有实现的函数创建一个桩函数(没有任何命令的函数,或者只用echo语句来说明最终那里需要什么函数) 也可以将菜单显示函数当做一个独立函数,这样就可以多次显示菜单。
3.添加菜单逻辑:
通过case命令根据用户输入的字符选择来调用合适的函数,通常用默认的case命令字符(*)来捕获所有不正确的菜单项
4.整个shell脚本菜单:
5.使用select命令:
select命令允许从单个命令行创建菜单,然后提取输入的答案并自动处理
select variable in list
do
commands
done
list参数是构成菜单的空格分割的文本选项列表,select 命令会在列表中将每一个选项作为一个编好号的选项显示,然后为选项创建一个特殊的PS3环境变量定义的提示符
窗口菜单:
1.dialog包(该包能在文本环境中用ANSI转义控制字符来创建标准的窗口对话框)(通过 sudo yum install dialog安装)
部件类型 描述
calender 提供选择日期的日历
checklist 显示多个选项
from 构建一个表单
fselect 提供一个文件选择窗口来浏览选择文件 dialog --title "hint" --fselect file heigth width 重定向
gauge 显示完成的百分比进度条
infobox 显示一条信息,但不用等待回应
inputbox 提供一个输入文本用的文本表单 dialog --inputbox "xxx" heigth width 重定向
inputmenu 提供一个可编辑的菜单
menu 显示可选择的一系列选项 dialog --menu "title" height width N(一次显示的菜单项总数) “menu”
msgbox 显示一条信息,并要去用户选择ok按钮 dialog --msgbox text height width
pause 显示一个进度条来显示特定暂定时间的状态
passwdbox 显示一个文本框来输入文本,但会隐藏输入的文本
passwdform 显示一个带标签和隐藏文本输入的表单
radiolist 提供一个菜单选项,但只能选择其中的一项
tailbox 用tail命令在滚动窗口中显示文件的内容
tailboxbg 和tailbox一样,但是在后台运行
textbox 在滚动窗口中显示文件内容 dialog --textbox file height width
timebox 提供一个选择小时,分,秒的窗口
yesno 提供一个简单的带yes和no按钮的消息 dialog --title "xxx" --yesno "xxx" heigth width
要在命令行指定某个特定的部件,需要使用双破折线格式(--)
dialog --widget parameter widget是部件名,parameter定义了部件窗口的大小以及部件所需要的文本
2.dialog选项
(有时间再补充吧,可以查看帮助手册)(未完)
3.在脚本中使用dialog命令
注意事项:如果有cancel和no选项,检查dialog命令的退出状态码 (如果选择了YES或OK按钮,退出状态码为1,如果选择了Cancel或No按钮,dialog命令退出状态码为1)
重定向STDERR来获取输出值
图形菜单:使用扩展的dialog命令
1.KDE环境(kdialog)
kdialog部件 描述
--checklist title [tag item status] 多选列表菜单,状态会说明该选项是否被选定
--error text 错误信息框
--input text [tag item] 输入文本框,可以用init值来指定默认值
--menu title[tag item] 带有标题的菜单选择框,以及用tag标识的选型列表
--msgbox text 显示指定文本的简单消息框
--passwdbox text 隐藏用户输入的密码输入文本框
--radiolist title[tag item status] 单选列表菜单,状态会说明该选项是否被选定
--separate-output 为多选列表和单选列表菜单返回按列分开的选项
--sorry text “sorry”对话框
--textbox file[width] [height] 显示file的内容的文本框,另外指定了width和heigth
--title title 为对话窗口的titlebar区域指定一个标题
--warningyesno text 带有yes和no的警告消息框
--warningcontinuecancel text 带有yes和no的警告消息框
--warningyesnocancel text 带有yes和no和cancel的警告消息框
--yesno text 带有yes和no的提问框
--yesnocancel text 带有yes和no和cancel的提问框
2.GNOME环境(zenity)
zenity部件 描述
--calender 显示整月日历
--entry 显示文本输入对话窗口
--error 显示错误信息对话框
--file-selection 显示完整的文件名和文件名称对话窗口
--info 显示信息对话窗口
--list 显示多选列表或单选列表对话窗口
--notification 显示通知图标
--progress 显示进度条对话窗口
--question 显示yes/no对话框
--scale 显示可调整大小的窗口
--text-info 显示含有文本的文本框
--warning 显示警告对话信息