返回顶部
首页 > 资讯 > 数据库 >shell循环和函数引用
  • 172
分享到

shell循环和函数引用

2024-04-02 19:04:59 172人浏览 安东尼
摘要

#!/bin/bash #菜单 function menu(){ echo -e "\t\t\t************************" echo -e&n

#!/bin/bash
#菜单
function menu(){
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的用户名和密码
function input(){
echo -e "\t\t\t请登录数据库"
read -p "请输入mysql用户名:" user
read -s -p "请输入mysql的密码:" passwd
}
#判断输入的用户名密码是否正确
function panduan(){
mysql -u$user -p$passwd -e exit 1>/dev/null 2>&1
if [ $?!= 0 ]
then
echo -e "\n\t\t\t用户名或密码错误,请重新输入!"
input
else
echo -e "\n\t\t\t数据库登录成功!"
fi
}
#创建用户并授权
function createuser(){
echo -e "已存在的用户如下,如果输入的用户已存在,则增加该用户到权限"
mysql -u$user -p$passwd -e "select user,host from mysql.user;"
read -p "请输入要创建的用户名:" newuser
read -s -p "请输入新用户的密码:" newpasswd
echo -e "请输入此用户的主机名(%代表所有的主机都能用此账户访问数据库,具体到某几个主机名中间用英文的逗号隔开,如localhost,192.168.1.1):"
read hostname
echo -e "请输入授予此用户操作数据库的权限(all代表全部,具体到某几个权限中间用英文的逗号隔开,如create,select):" 
read grant
echo -e "请输入授予此用户的访问的库和表的权限(*.*代表全部的库和表,具体到某几个库中间用英文的逗号隔开,如database1.table1,database2.table2):"
read database
mysql -u$user -p$passwd -e "grant $grant on $database to '$newuser'@'$hostname' identified by '$newpasswd';" 2>/tmp/error.txt
if [ -s /tmp/error.txt ]
then
echo -e "\t\t数据库的权限或库名、表名输入错误!"
else
echo -e "\n\t\t\t用户创建成功!"
fi
}
#命令行操作数据库
function orders(){
while true
do
echo -e "\n"
echo -e "请输入mysql语句:"
read order
mysql -u$user -p$passwd -e "$order" 2>/dev/null
if [ $?!=0 ]
then
echo -e "\t\t\tsql语句输入错误!"
fi
done
}
#修改密码
function change(){
echo -e "数据库中已存在的用户如下:"
tuser=`mysql -u$user -p$passwd -e "select distinct User from mysql.user;"|awk '{print $1}'|sed -n '2,$p'`
echo $tuser
while true
do
echo -e "请输入要修改的用户名:"
read cuser
echo -e "请输入新密码"
read -s cpasswd
echo -e "请再次输入新密码"
read -s zpasswd
echo $tuser|grep $cuser>/tmp/tuser.txt
if [ "$cpasswd" = ""$zpasswd"" -a -s /tmp/tuser.txt ]
then
mysql -u$user -p$passwd <<EOF
update mysql.user set passWord=password('$cpasswd') where user='$cuser';
flush privileges;
EOF
echo -e "\t\t\t$cuser用户的密码修改成功!"
elif [ "$cpasswd" != ""$zpasswd"" ]
then
echo -e "\t\t\t两次输入的密码不一致!"
else
echo -e "\t\t\t你输入的用户不存在!"
fi
done
}
while true;do
menu
read -p "请输入数字(0~4):" i
case $i in
1)
while true
do
input
mysql -u$user -p$passwd 2>/tmp/mysql.txt
if [ -s /tmp/mysql.txt ]
then
echo -e "\n\t\t\t用户名或密码错误,请重新输入!"
else
break
fi
done
;;
2)
input
panduan
createuser
;;
3)
input
orders
;;
4)
input
panduan
change
;;
0)
exit 0;;
*)
echo -e "\t\t\t请输入有效数字!"
;;
esac
done


您可能感兴趣的文档:

--结束END--

本文标题: shell循环和函数引用

本文链接: https://lsjlt.com/news/50011.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • shell循环和函数引用
    #!/bin/bash #菜单 function menu(){ echo -e "\t\t\t************************" echo -e&n...
    99+
    2024-04-02
  • python3_04.循环&函数
    1.循环&条件控制    注意:每个条件后面要使用冒号(:),表示接下来是满足条件后要执行的语句块。使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。break 语句可以跳出 for 和 while 的循环体。contin...
    99+
    2023-01-31
    函数
  • Python循环语句和函数怎么应用
    本文小编为大家详细介绍“Python循环语句和函数怎么应用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python循环语句和函数怎么应用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新...
    99+
    2024-04-02
  • MySQL循环和时间函数怎么应用
    在MySQL中,可以使用循环和时间函数来执行重复的任务或处理时间相关的操作。以下是如何在MySQL中应用循环和时间函数的一些示例: ...
    99+
    2024-04-30
    MySQL
  • Shell中的for和while循环的用法
    本篇内容主要讲解“Shell中的for和while循环的用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Shell中的for和while循环的用法”吧!一、for循环1.数字段形式代码如下:f...
    99+
    2023-06-09
  • C++中引用、内联函数、auto关键字和范围for循环详解
    目录一、前言二、引用三、内联函数四、auto关键字五、范围for循环六、结语一、前言 大家好久不见,这篇文章带大家学习一下C++中的引用和内联函数 二、引用 引用变量是一个别名,也就...
    99+
    2023-02-10
    c++ auto关键字 c++中的内联函数 c++引用的作用是什么
  • shell for循环与数组应用介绍
    读取一个文件,把每一行赋值给一个数组的变量,然后用for循环打印出来 #!/bin/shi=1SUM=`sed -n '$=' tmp.txt` #计算文件的总行数echo "$SUM"while read...
    99+
    2022-06-04
    数组 shell
  • shell的for循环怎么用
    这篇文章主要介绍了shell的for循环怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇shell的for循环怎么用文章都会有所收获,下面我们一起来看看吧。for循环一般格式为:for var&n...
    99+
    2023-06-27
  • 怎么在linux shell 中定义数组和for循环
    这期内容当中小编将会给大家带来有关怎么在linux shell 中定义数组和for循环,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。linux 中定义一个数据的语法为:variable=(arg1&nbs...
    99+
    2023-06-09
  • Shell中while循环怎么使用
    本文小编为大家详细介绍“Shell中while循环怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Shell中while循环怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。while 循环是 She...
    99+
    2023-06-27
  • Linux shell中for循环怎么用
    这篇文章主要介绍“Linux shell中for循环怎么用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Linux shell中for循环怎么用”文章能帮助大家解决问题。在Linux shell 中...
    99+
    2023-06-28
  • Shell中的for循环的用法
    本篇内容主要讲解“Shell中的for循环的用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Shell中的for循环的用法”吧!代码如下:for((i=1;i<=10;i++));do ...
    99+
    2023-06-09
  • python有哪些循环函数
    python中的循环函数有以下两种for循环sum = 0for x in range(5):sum = sum + xprint(sum)while循环sum = 0n = 1while n < 5:sum = sum + nn = n+...
    99+
    2024-04-02
  • Linux shell数组循环的实例详解
    shell数组循环 测试shell数组,循环的例子: arr=("a" "b" "c") echo "所有的内容如下:"${arr[@]} echo "数组的长度:"${#arr[*...
    99+
    2022-06-04
    数组 详解 实例
  • 浅谈shell数组的定义及循环
    shell中数组的定义及遍历,先直接看示例: #!/bin/sh #定义方法一 数组定义为空格分割 arrayWen=(a b c d e f) #定义方法二 arrayXue[0]="m" arrayXue[1]=...
    99+
    2022-06-04
    shell 定义 循环
  • Shell中的for和while循环详细总结
    一、for循环 1.数字段形式 for i in {1..10} do echo $i done 2.详细列出(字符且项数不多) for File in 1 2 3 4 5 do ...
    99+
    2022-06-04
    详细 Shell
  • python中什么是循环引用
    这篇文章将为大家详细讲解有关python中什么是循环引用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整型)、...
    99+
    2023-06-14
  • 怎么解决spring循环引用
    在Spring中遇到循环引用的问题,可以通过以下几种方式来解决:1. 修改代码结构:检查代码中是否存在循环依赖的问题,尽量避免出现循...
    99+
    2023-08-16
    spring
  • shell中的for循环用法详解
    for 命令: for i in 的各种用法 : for i in “file1” “file2” “file3” for i in /boot/* for i in /etc/*.conf for ...
    99+
    2022-06-04
    shell for循环 shell for
  • shell如何使用for或while循环
    这篇文章将为大家详细讲解有关shell如何使用for或while循环,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。for/while 循环for ((i=0;&...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作