这两天一直在学习编写shell脚本,然后将自己的学习综合了下写了个操作数据库的小程序,以下是脚本,欢迎大家指正
#!/bin/bash
:<<!
编写一个执行mysql数据库的小系统,主要实现以下功能:
1.实现连接数据库
2.输出功能菜单:1 插入 2 修改 3 删除 4 查询 5 退出
3.实现以上5个功能
!
# 定义数据库连接变量
mysql_u="root"
mysql_p="******"
#1.打印菜单
function printMenu(){
echo "=====* 欢迎登陆本系统 *====="
# 循环此功能
while true
do
echo "=====* 1:查询 2:插入 3:修改 4:删除 5:退出 *====="
echo "=====* 请选择对应功能的标号,例如:1 *====="
read choiceFlag
# 判断菜单选项
case $choiceFlag in
1)
Mysql_Q # 执行查询功能
;;
2)
Mysql_I # 执行插入功能
;;
3)
Mysql_U # 执行更新功能
;;
4)
Mysql_D # 执行删除功能
;;
5)
# 退出程序
echo "=====* 退出成功 *====="
exit 0
;;
*)
# 错误命令提示
echo "输入指令错误!"
;;
esac
echo "=====* 是否继续进行操作 Y or N *====="
read flag
if [ $flag = 'N' ]
then
echo "=====* 退出成功 *====="
exit 0
fi
done
}
# 2.数据库数据查询
function Mysql_Q(){
export MYSQL_PWD="$mysql_p"
sql="select * from shell_one"
# 连接数据库
result=`mysql -u$mysql_u << EOF
use linux;
$sql;
quit
EOF`
# 输出查询结果
echo "查询结果如下:"
echo "$result"
}
# 3.数据插入
function Mysql_I(){
echo "请输入要插入的数据,中间以空格分割:"
read insertSql
# 将字符串转化为数组
arr=($insertSql)
export MYSQL_PWD="$mysql_p"
sql="insert into shell_one(sname,sage,sgender,sclass) values ('${arr[0]}',${arr[1]},'${arr[2]}','${arr[3]}')"
# 连接数据库
result=`mysql -u$mysql_u << EOF
use linux;
$sql;
quit
EOF`
# 判断是否执行成功
if [ $? = 0 ]
then
echo "执行成功!"
else
echo "执行失败!"
fi
}
# 4.数据库数据修改
function Mysql_U(){
echo "请输入要修改的数据ID,以及对应修改后的数据,中间以空格分割:"
read updateSql
# 将字符串转化为数组
arr=($updateSql)
export MYSQL_PWD="$mysql_p"
sql="update shell_one set sname='${arr[1]}',sage=${arr[2]},sgender='${arr[3]}',sclass='${arr[4]}' where sid=${arr[0]}"
# 连接数据库
result=`mysql -u$mysql_u << EOF
use linux;
$sql;
quit
EOF`
# 判断是否执行成功
if [ $? = 0 ]
then
echo "执行成功!"
else
echo "执行失败!"
fi
}
# 5.数据删除
function Mysql_D(){
echo "请输入要删除的数据ID:"
read delSql
export MYSQL_PWD="$mysql_p"
sql="delete from shell_one where sid=${delSql}"
# 连接数据库
result=`mysql -u$mysql_u << EOF
use linux;
$sql;
quit
EOF`
# 判断是否执行成功
if [ $? = 0 ]
then
echo "执行成功!"
else
echo "执行失败!"
fi
}
# 执行入口函数
printMenu
以下是运行shell脚本的测试结果:
=====* 欢迎登陆本系统 *=====
=====* 1:查询 2:插入 3:修改 4:删除 5:退出 *=====
=====* 请选择对应功能的标号,例如:1 *=====
1
查询结果如下:
sid sname sage sgender sclass
1 张武 28 1 一班
2 李四 24 1 二班
3 王五 25 1 三班
4 赵六 26 1 一班
5 蓝宝 20 0 一班
8 张歌 23 0 四班
10 刘颜 20 0 二班
12 张娜 23 0 一班
13 张亮 24 1 二班
=====* 是否继续进行操作 Y or N *=====
Y
=====* 1:查询 2:插入 3:修改 4:删除 5:退出 *=====
=====* 请选择对应功能的标号,例如:1 *=====
2
请输入要插入的数据,中间以空格分割:
韩星 24 0 三班
执行成功!
=====* 是否继续进行操作 Y or N *=====
Y
=====* 1:查询 2:插入 3:修改 4:删除 5:退出 *=====
=====* 请选择对应功能的标号,例如:1 *=====
3
请输入要修改的数据ID,以及对应修改后的数据,中间以空格分割:
13 张良 25 1 二班
执行成功!
=====* 是否继续进行操作 Y or N *=====
Y
=====* 1:查询 2:插入 3:修改 4:删除 5:退出 *=====
=====* 请选择对应功能的标号,例如:1 *=====
1
查询结果如下:
sid sname sage sgender sclass
1 张武 28 1 一班
2 李四 24 1 二班
3 王五 25 1 三班
4 赵六 26 1 一班
5 蓝宝 20 0 一班
8 张歌 23 0 四班
10 刘颜 20 0 二班
12 张娜 23 0 一班
13 张良 25 1 二班
14 韩星 24 0 三班
=====* 是否继续进行操作 Y or N *=====
Y
=====* 1:查询 2:插入 3:修改 4:删除 5:退出 *=====
=====* 请选择对应功能的标号,例如:1 *=====
4
请输入要删除的数据ID:
2
执行成功!
=====* 是否继续进行操作 Y or N *=====
Y
=====* 1:查询 2:插入 3:修改 4:删除 5:退出 *=====
=====* 请选择对应功能的标号,例如:1 *=====
1
查询结果如下:
sid sname sage sgender sclass
1 张武 28 1 一班
3 王五 25 1 三班
4 赵六 26 1 一班
5 蓝宝 20 0 一班
8 张歌 23 0 四班
10 刘颜 20 0 二班
12 张娜 23 0 一班
13 张良 25 1 二班
14 韩星 24 0 三班
=====* 是否继续进行操作 Y or N *=====
Y
=====* 1:查询 2:插入 3:修改 4:删除 5:退出 *=====
=====* 请选择对应功能的标号,例如:1 *=====
5
=====* 退出成功 *=====
以上便是个人的分享,如果有错误的地方希望大家能够帮忙指正,谢谢!