在脚本程序中使用视图窗口,不仅能增加脚本程序阅读的直观性,同时也可以提高脚本程序的亲和力。而将一些提示性的信息或操作结果显示于视图窗口,也为用户操作提供了非常好的视觉效果。
1.视图构造工具dialog
dialog 是一款shell脚本中建立对话框的工具,有很多参数和选项。常用的对话框有Yes/no选项框、基本输入框以及菜单选项框等。
1.1 dialog安装
yum install dialog
...
省略
...
Package dialog-1.2-5.20130523.el7.x86_64 already installed and latest version
1.2 dialog常用选项
视图窗口对话框选项类型
对话框类型 | 选项 | 说明 |
---|---|---|
消息框 | –msgbox | 显示消息,可通过OK按钮继续其它操作 |
是否框 | –yesno | 构造一个提问窗口,且可以选择yes或no选项 |
信息框 | –infobox | 在显示消息后,对话框立即返回 |
菜单框 | –menu | 允许选择列表中的某选项 |
复选框 | –checklist | 显示一个选项列表,每个选项都可以被单独选择 |
文本框 | –textbox | 带有滚动条的文本框中显示文本内容 |
输入框 | –inputbox | 产生文本输入框,并输入文本 |
单选框 | –radiobox | 允许选择列表中的一个选项 |
构造视图常用的辅助选项
选项 | 说明 |
---|---|
–backtitile | 设置背景顶端的标题,一般出现在左上方 |
–title | 设置视图窗口顶端标题 |
–no-shadow | 取消外框阴影效果 |
1.3 实例
**信息显示对话框,**语法如下
dialog --msgbox text height width
dialog --msgbox "Hello dialog" 12 36
#顶端标题
dialog --titile "MessageBox" --msgbox "Hello dialog" 12 36
#取消背景阴影
dialog --titile "MessageBox" --no-shadow --msgbox "Hello dialog" 12 36
动态显示进度
[root@test3 ~]# cat rate.sh
#!/bin/bash
{
for ((x=1;x<=10;x++))
do
let X=10*x
echo $X
sleep 1
done
}|
dialog --gauge "Rate of progress..." 10 36
exit 0
其它对话框示例后续补充
2.zenity工具
zenity是一个开源和显示GTK +对话框的命令行和使用shell脚本一个跨平台的应用程序。 它允许在图形框中向/从shell请求和呈现信息。 该应用程序允许您在命令行中创建图形对话框,并使用户和shell之间的交互非常容易。
2.1安装配置
yum install zenity
yum install xauth
yum install xorg-x11-fonts-Type1
注意: 检查ssdd配置中x11forwarding 为yes
2.2基本对话框
快速日历对话框
其它选项说明
#快速错误对话框
zenity --error
#一般文本输入对话框
zenity --entry
#进度栏
zenity --progress
#密码对话框
zenity --password