shell循环和函数引用
#!/bin/bash#菜单functionmenu(){echo-e"\t\t\t************************"echo-e"\t\t\t*操作数据库*"echo-e"\t\t\t************************"echo-e"\t\t\t*1、登录数据库*"echo-e"\t\t\t*2、创建用户或增加权限*"echo-e"\t\t\t*3、sql语句操作数据库*"echo-e"\t\t\t*4、更改用户密码*"echo-e"\t\t\t*0、退出*"echo-e"\t\t\t************************"}#输入mysql的用户名和密码functioninput(){echo-e"\t\t\t请登录数据库"read-p"请输入mysql用户名:"userread-s-p"请输入mysql的密码:"passwd}#判断输入的用户名密码是否正确functionpanduan(){mysql-u$user-p$passwd-eexit1>/dev/null2>&1if[$?!=0]thenecho-e"\n\t\t\t用户名或密码错误,请重新输入!"inputelseecho-e"\n\t\t\t数据库登录成功!"fi}#创建用户并授权functioncreateuser(){echo-e"已存在的用户如下,如果输入的用户已存在,则增加该用户到权限"mysql-u$user-p$passwd-e"selectuser,hostfrommysql.user;"read-p"请输入要创建的用户名:"newuserread-s-p"请输入新用户的密码:"newpasswdecho-e"请输入此用户的主机名(%代表所有的主机都能用此账户访问数据库,具体到某几个主机名中间用英文的逗号隔开,如localhost,192.168.1.1):"readhostnameecho-e"请输入授予此用户操作数据库的权限(all代表全部,具体到某几个权限中间用英文的逗号隔开,如create,select):"readgrantecho-e"请输入授予此用户的访问的库和表的权限(*.*代表全部的库和表,具体到某几个库中间用英文的逗号隔开,如database1.table1,database2.table2):"readdatabasemysql-u$user-p$passwd-e"grant$granton$databaseto'$newuser'@'$hostname'identifiedby'$newpasswd';"2>/tmp/error.txtif[-s/tmp/error.txt]thenecho-e"\t\t数据库的权限或库名、表名输入错误!"elseecho-e"\n\t\t\t用户创建成功!"fi}#命令行操作数据库functionorders(){whiletruedoecho-e"\n"echo-e"请输入mysql语句:"readordermysql-u$user-p$passwd-e"$order"2>/dev/nullif[$?!=0]thenecho-e"\t\t\tsql语句输入错误!"fidone}#修改密码functionchange(){echo-e"数据库中已存在的用户如下:"tuser=`mysql-u$user-p$passwd-e"selectdistinctUserfrommysql.user;"|awk'{print$1}'|sed-n'2,$p'`echo$tuserwhiletruedoecho-e"请输入要修改的用户名:"readcuserecho-e"请输入新密码"read-scpasswdecho-e"请再次输入新密码"read-szpasswdecho$tuser|grep$cuser>/tmp/tuser.txtif["$cpasswd"=""$zpasswd""-a-s/tmp/tuser.txt]thenmysql-u$user-p$passwd<<EOFupdatemysql.usersetpassword=password('$cpasswd')whereuser='$cuser';flushprivileges;EOFecho-e"\t\t\t$cuser用户的密码修改成功!"elif["$cpasswd"!=""$zpasswd""]thenecho-e"\t\t\t两次输入的密码不一致!"elseecho-e"\t\t\t你输入的用户不存在!"fidone}whiletrue;domenuread-p"请输入数字(0~4):"icase$iin1)whiletruedoinputmysql-u$user-p$passwd2>/tmp/mysql.txtif[-s/tmp/mysql.txt]thenecho-e"\n\t\t\t用户名或密码错误,请重新输入!"elsebreakfidone;;2)inputpanduancreateuser;;3)inputorders;;4)inputpanduanchange;;0)exit0;;*)echo-e"\t\t\t请输入有效数字!";;esacdone
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。