用户界面和dialog工具①
。在文本控制台下实现用户界面,支持 多选框 表单 文件选择 进度条 输入框 菜单 消息框 密码 单选框 文本框 YesNo等多个元件
。安装包dialog
#yum insatll dialog
。/usr/share/doc/dialog-<version>/sample目录下提供示例程序
用户界面和dialog工具②
。dialog显示文本用户界面,在选择之后可以对其退出状态使用case语句做检测
。通常为以下几种:
0 Yes或OK 1 No或Cancel 2 用户点击Help帮助按钮 3 点击其他的按钮 -1 Esc键推出 |
用户界面和dialog工具③
。每一次使用一种对话框元素,可以使用下面的语句清除屏幕的同时保留原背景色
-dialog --clear
-不要使用Shell命令clear
dialog工具实现消息框
。cat >dia2
dialog --title "Linux Dialog Utility Msgbox“ #标题头
--backtitle "Linux Shell Script \ #一行写不完
Tutorial”
--msgbox "This is dialog box called msgbox,\
which is user......" 9 50
。--msgbox 消息框中的内容
。9 50 居中的长高度和宽
dialog工具实现yes/no选择对话框
dialog --title "Alert : Delete File" --backtitle "Linux Shell Script\ Tutorial" --yesno "\nDo you want to delete '/usr/letters/jobapplication' file" 7 60 sel = $? case $sel in 0)echo "User select to delete file";; 1)echo "User select not to delete file";; 255)echo "Canceled by user by pressing [ESC] key";; esac 。返回值判断用户的选择0代表Yes,1代表0,255代表强制退出。
dialog工具实现输入框
dialog --title “Inputbox - To take input from you" --backtitle "Linux Shell Script Trtorial" --inputbox "Enter your name please"\ 8 60 2>/tmp/input.$$ #关键部分将输入信息保存到文件中 sel=$? na=$(cat/tmp/input.$$) case $sel in 0)echo "Hello $na";; #执行结果为0,读取文件中输入的信息 1)echo "Cacel is Press";; #返回结果为1,表示取消 255)echo "[ESCAPE]key pressed";; #255为退出 esac rm -f /tmp/input.$$
dialog中菜单
。在dialog中可以实现上下选项菜单的项
。其结果输出到一个临时文件,再将tag结果显示出来
。语法
-dialog --menu <文本> <高> <宽> <菜单高> [tag选项描述]......
-示例:
dialog --clear --title "Menu Box" --menu "Hi,this is a menu box example \n Choose the OS you like:* 20 51 5 4 \ "Linux" "RedHat Enterprise Linux" \ "UNIX" "IBM AIX"\ "WIN NT" "Microsoft Windows NT" 2>/tmp/temp.$$ cat /tmp/temp.$$
dialog中多选框
。--checklist与Menu Box雷同,提供了多选框,同时也提供了选项的on/off的初始状态。
。语法
- --checklist <文本> <高> <宽> <列表的高度> [<tag> <条目描述><状态>]......
。示例:
dialog --backtitle ”服务列表“ --title ”这是一个多选框的例子“ --checklist ”请选择开启的服务“ 20 61 5 \ "ntp" "Network time protocol" off \ "sendmial" "Sendmail mail service”oN\ "httpd" "Apache Web server" oFf 2>/tmp/tmp.$$ 。dialog的多选框返回值就是选择ON的值