本章技术点:
Linux社区-使用whiptail构建可视化脚本-1.jpg (11.85 KB, 下载次数: 0)
2018-10-14 19:47 上传
whiptail构建可视化脚本
什么是whiptail?
在Linux中可以使用命令来形成对话框,Linux命令行形成的对话框就是以代码的形式呈现。whiptail就是一个Linux可以形成对话框的命令行,本文就来介绍一下Linux使用whiptail形成对话框的体例。
一、简单的空话
经过最近的研究,翻了很多百度关于whiptail的文章,都是一些介绍用法,看的很是苦恼,脑袋爆炸,看了很多我真的没有找到一些有实例的,好比那个进度条.(!#@$%^@^%@^%&%&)!!! 表达的心情都在括号里! 还好有大牛的指点及教导,才有了今天的这一篇很简单的案例。 算是总结,也算是分享,~ 可以往下滑了~
首先确定用户的IP地址如下:
Linux社区-使用whiptail构建可视化脚本-2.jpg (14.4 KB, 下载次数: 0)
2018-10-14 19:47 上传
2、输入IP地址后判断IP地址反馈结果
Linux社区-使用whiptail构建可视化脚本-3.jpg (12.5 KB, 下载次数: 0)
2018-10-14 19:47 上传
3、IP地址正确后弹出是否需要安装nginx办事?
Linux社区-使用whiptail构建可视化脚本-4.jpg (13.52 KB, 下载次数: 0)
2018-10-14 19:47 上传
4、当用户选择确定安装后,进入进度条页面
Linux社区-使用whiptail构建可视化脚本-5.jpg (14.58 KB, 下载次数: 0)
2018-10-14 19:47 上传
5、进度条走完弹出安装成功并引导用户拜候页面
Linux社区-使用whiptail构建可视化脚本-6.jpg (13.98 KB, 下载次数: 0)
2018-10-14 19:47 上传
拜候页面测试结果
Linux社区-使用whiptail构建可视化脚本-7.jpg (59.37 KB, 下载次数: 0)
2018-10-14 19:47 上传
好像还少了个毛病判断 如下:
Linux社区-使用whiptail构建可视化脚本-8.jpg (15.05 KB, 下载次数: 0)
2018-10-14 19:47 上传
当用户输入判断不合法时,提示用户IP地址是毛病的
Linux社区-使用whiptail构建可视化脚本-9.jpg (14.57 KB, 下载次数: 0)
2018-10-14 19:47 上传
让用户选择再次输入IP地址还是退出
Linux社区-使用whiptail构建可视化脚本-10.jpg (12.71 KB, 下载次数: 0)
2018-10-14 19:47 上传
在这里我选择No
Linux社区-使用whiptail构建可视化脚本-11.jpg (12.18 KB, 下载次数: 0)
2018-10-14 19:47 上传
在这里就不在演示了
哦? 好像缺了代码? 没关系-贴上!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#!/bin/bashfunction Prompt(){(whiptail --title "IP地址更改(yes/no)" --yesno "您是否需要重新配置IP地址?" 10 60) if [ $? -eq 0 ];then ip_check else whiptail --title "Nginx提示!" --msgbox "欢迎您再次使用Nginx一键安装办事." 10 60 exit 1 fi}function ip_check(){IP=$(whiptail --title "IP地址设置" --inputbox "请您输入您的IP地址" 10 60 3>&1 1>&2 2>&3) VALID_CHECK=$(echo $IP|awk -F. '$1<=255&&$2<=255&&$3<=255&&$4<=255{print "yes"}') if echo $IP|grep -E "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$" >/dev/null; then if [[ "$VALID_CHECK" == "yes" ]]; then whiptail --title "IP地址合法提示!" --msgbox "您输入的IP地址正确,点击OK进行下一步配置!." 10 60 fi else whiptail --title "IP地址毛病提示!" --msgbox "您输入的IP地址可能有误,请您检查后再次输入!." 10 60 Prompt fi}function install_nginx(){(whiptail --title "安装 Nginx?(yes/no)" --yesno "你是否需要安装Nginx?" 10 60) if [ $? -eq 0 ];then { sleep 1 echo 5 apt-get update >/dev/null sleep 1 echo 10 sudo apt-get -y install build-essential >/dev/null & sleep 1 echo 30 sudo apt-get -y install openssl libssl-dev >/dev/null & sleep 1 echo 50 sudo apt-get -y install libpcre3 libpcre3-dev >/dev/null & sleep 1 echo 70 sudo apt-get -y install zlib1g-dev >/dev/null & sleep 1 echo 90 wget -q http://nginx.org/download/nginx-1.12.2.tar.gz >/dev/null sleep 1 echo 95 useradd -M -s /sbin/nologin nginx & tar zxf /root/nginx-1.12.2.tar.gz && cd /root/nginx-1.12.2/ && ./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-pcre --with-http_ssl_module --with-http_gzip_static_module --user=nginx >/dev/null && make >/dev/null && make install >/dev/null /usr/local/nginx/sbin/nginx &>/dev/null & sleep 100 } | whiptail --gauge "正在安装Nginx,过程可能需要几分钟请稍后.........." 6 60 0 && whiptail --title "Nginx安装成功提示!!!" --msgbox "恭喜您Nginx安装成功,请您拜候:http://$IP:80, 感激使用~~~" 10 60 else whiptail --title "Nginx提示!!!" --msgbox "感激使用~~~" 10 60 exit 1 fi}function mail(){ ip_check install_nginx}mail
更多内容回复查看:
游客,如果您要查看本帖隐藏内容请回复