当前位置: 首页 > news >正文

dialog工具,让脚本迈向图形化

如果你知道你的脚本程序只需要运行在linux控制台上,则可以使用dialog工具命令,它以一种非常整洁的方式润色你的脚本程序。这个命令使用文本模式的图形和色彩,但它的确提供了友好的面向图形的解决方案。

#!/bin/sh

dialog --title "Linux environment deploy" --menu "select soft:" 20 40 10 1 "mysql" 2 "nginx"  3 "php" 4 "php-extension" 5 "mongodb" 6 "redis" 7 "memcached" 8 "set ulimit" 9 "set sysctl" 10 "varnish" 2>_1.txt
PACKAGES=$(cat _1.txt)

install_mysql(){
if [ ! -f ./mysql-${MYSQL_VERSION}.tar.gz ];then
	_V=$(echo ${MYSQL_VERSION} | awk -F. '{print $2}')
	wget http://cdn.mysql.com//Downloads/MySQL-5.$_V/mysql-${MYSQL_VERSION}.tar.gz 2>&1 | \
	stdbuf -o0 awk '/[.] +[0-9][0-9]?[0-9]?%/ { print substr($0,63,3) }'| \
	dialog --gauge "Download mysql-${MYSQL_VERSION}.tar.gz" 10 100
fi

if [ ! -d ${INSTALL_PATH} ]; then
	dialog --infobox "decompression mysql-${MYSQL_VERSION}.tar.gz" 5 40
	tar zxf mysql-${MYSQL_VERSION}.tar.gz
	cd mysql-${MYSQL_VERSION}
	cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_PATH} \
	-DMYSQL_DATADIR=${INSTALL_PATH}/var \
	-DSYSCONFDIR=/etc \
	-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
	-DMYSQL_TCP_PORT=3306 \
	-DDEFAULT_CHARSET=utf8 \
	-DDEFAULT_COLLATION=utf8_general_ci \
	-DEXTRA_CHARSETS=all 
	if [ "$?" -eq 0 ];then
		make && make install
	else
		exit 1
	fi

	if [ ! `cat /etc/group | awk -F: '{print $1}'| grep mysql` ];then
		groupadd mysql
	fi
	if [ ! `cat /etc/passwd | awk -F: '{print $1}'| grep mysql` ];then
		useradd -M -g mysql -s /sbin/nologin mysql
	fi

	cp ../profile.d/mysql.sh /etc/profile.d/
	echo "${INSTALL_PATH}/lib" > /etc/ld.so.conf.d/mysql.conf
	ldconfig
	source /etc/profile.d/mysql.sh
	echo
	echo "init ..."
	echo
	mkdir ${INSTALL_PATH}/var
	chown -R mysql:mysql ${INSTALL_PATH}/var
	if [ -f /etc/my.cnf ];then
		rm -rf /etc/my.cnf
	fi
	${INSTALL_PATH}/scripts/mysql_install_db --user=mysql --basedir=${INSTALL_PATH} --datadir=${INSTALL_PATH}/var --explicit_defaults_for_times
	if [ "$?" -eq 0 ];then
		echo "init success."
	else
		exit 1
	fi
	cp  support-files/mysql.server  /etc/rc.d/init.d/mysqld
	cp ../conf/my.cnf /etc/
	chmod a+x /etc/rc.d/init.d/mysqld
	mkdir ${INSTALL_PATH}/mysql_binlog
	mkdir ${INSTALL_PATH}/logs
	chown -R mysql.mysql ${INSTALL_PATH}/logs
	chown -R mysql.mysql ${INSTALL_PATH}/mysql_binlog
	/etc/init.d/mysqld start
	chkconfig --add mysqld
	chkconfig mysqld on
else
		echo "mysql directory is exist. will be quit"
		exit 0
fi
}

if [ "$PACKAGES" = "1" ]; then
        dialog --title "MySQL Version" --inputbox "输入mysql版本(如:5.7.9,会从官网下载):" 10 50 2>_1.txt
        MYSQL_VERSION=$(cat _1.txt)
        dialog --title "ENTER INSTALL PATH" --inputbox "请输入安装路径:" 10 40 2>_1.txt
        INSTALL_PATH=$(cat _1.txt)
        install_mysql
else
        exit 1
fi

  FC635A81-D994-4D07-8D4A-3AB04479462D

BAC43306-DFC8-4457-A5FF-101F9F636783

9743988F-51AF-45F4-AD6B-368E3FA2DB42

A7044111-F003-41EE-A49C-0CCAFE69DE88

 dialog工具,让脚本迈向图形化

转载于:https://www.cnblogs.com/miaoxg/p/5074448.html

相关文章:

  • 如何学好编程(三)---四步成为编程精英
  • ios项目中引用其他项目复习
  • 检测一下你的专业指数:2015年十大测试工具你认识几个?
  • 1126 求递推序列的第N项(51nod)
  • Char、AnsiChar、WideChar、PChar、PAnsiChar、PWideChar 的用法
  • spring-data-jpa 多数据源
  • 利用partial关键字声明分部类和分部方法
  • linux下搭建LAMP
  • 整洁的测试遵循的规则
  • server配置学习 ---- 关闭防火墙
  • 第一章 C++编程基础
  • DataBind()方法实现数据绑定
  • Qt 和 Boost关于信号和槽的对比说明
  • APT典型应用示例
  • 20160119--进销存系统分析
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • 230. Kth Smallest Element in a BST
  • CentOS7 安装JDK
  • CSS相对定位
  • css属性的继承、初识值、计算值、当前值、应用值
  • ES6 学习笔记(一)let,const和解构赋值
  • exif信息对照
  • gitlab-ci配置详解(一)
  • JWT究竟是什么呢?
  • MQ框架的比较
  • mysql 5.6 原生Online DDL解析
  • MySQL数据库运维之数据恢复
  • Promise面试题,控制异步流程
  • python3 使用 asyncio 代替线程
  • SwizzleMethod 黑魔法
  • 阿里云Kubernetes容器服务上体验Knative
  • 动态规划入门(以爬楼梯为例)
  • 浮现式设计
  • 关于字符编码你应该知道的事情
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 线上 python http server profile 实践
  • 一份游戏开发学习路线
  • 移动端 h5开发相关内容总结(三)
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • 翻译 | The Principles of OOD 面向对象设计原则
  • ​插件化DPI在商用WIFI中的价值
  • ​油烟净化器电源安全,保障健康餐饮生活
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • (1)(1.13) SiK无线电高级配置(五)
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (论文阅读11/100)Fast R-CNN
  • (十八)SpringBoot之发送QQ邮件
  • (算法设计与分析)第一章算法概述-习题
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • *1 计算机基础和操作系统基础及几大协议