- 本篇文章的主要目的就是将Linux中常用的命令写成shell脚本
#!/bin/bash
function connect_mysql(){
read -t 20 -p "请输入MySQL用户名:" sql_name
read -t 20 -p "请输入MySQL密码:" sql_password
mysql -u${sql_name} -p${sql_password}
clear
}
function firewall_status(){
firewall-cmd --state
}
function firewall_port_list(){
firewall-cmd --list-ports
}
function firewall_port_open(){
read -t 20 -p "请输入指定端口号:" prt
echo ""
echo "端口开放..."
firewall-cmd --zone=public --add-port=${prt}/tcp --permanent
echo "端口${prt}开放成功!"
echo ""
echo "重启防火墙服务..."
firewall-cmd --reload
echo "服务重启成功!"
echo ""
}
function firewall_restart(){
echo ""
echo "重启防火墙服务..."
firewall-cmd --reload
echo "服务重启成功!"
echo ""
}
function firewall_port_close(){
read -t 20 -p "请输入指定端口号:" prt
echo ""
echo "端口关闭..."
firewall-cmd --zone=public --remove-port=${prt}/tcp --permanent
echo "端口${prt}关闭成功!"
echo ""
echo "重启防火墙服务..."
firewall-cmd --reload
echo "服务重启成功!"
echo ""
}
function manager_firewall(){
echo "请输入需要执行的防火墙操作:"
echo "1-查看防火墙状态"
echo "2-查看已开放端口"
echo "3-开放指定的端口"
echo "4-重启防火墙服务"
echo "5-关闭指定的端口"
echo "6-返回"
read -t 20 -p "请输入:" selection
clear
case ${selection} in
"1")
firewall_status
;;
"2")
firewall_port_list
;;
"3")
firewall_port_open
;;
"4")
firewall_restart
;;
"5")
firewall_port_close
;;
"6")
clear
menu
;;
esac
}
function git_pull(){
dir_name=$1
cd ${dir_name}
list=$(ls)
update_moudle=()
index=0
for item in ${list}
do
echo ""
echo ">>>>>>>>>>>>>>>>>>>>>>>>更新项目${item}>>>>>>>>>>>>>>>>>>>>>>>>"
read -t 20 -p "是否更新项目${item}(y/n):" pd
if [ ${pd} = "y" ];
then
cd ${item}
git pull
update_moudle[${index}]=${item}
index=$[${index}+1]
cd ${dir_name}
echo ">>>>>>>>>>>>>>>>>>>>>>>>项目${item}更新成功>>>>>>>>>>>>>>>>>>>>>>>>"
fi
done
echo ""
echo ">>>>>>>>>>>>>>>>>>>>>>>>本次共更新${#update_moudle[@]}个模块>>>>>>>>>>>>>>>>>>>>>>>>"
for((i=0;i<${#update_moudle[@]};i++))
do
echo ${update_moudle[i]}
done
}
function git_change_branch(){
dir_name=$1
cd ${dir_name}
list=$(ls)
update_moudle=()
index=0
for item in ${list}
do
echo ""
echo ">>>>>>>>>>>>>>>>>>>>>>>>更新项目${item}>>>>>>>>>>>>>>>>>>>>>>>>"
read -t 20 -p "是否切换项目${item}分支(y/n):" pd
if [ ${pd} = "y" ];
then
cd ${item}
git branch -a
read -t 20 -p "请输入切换分支名称:" fz
git checkout ${fz}
update_moudle[${index}]=${item}
index=$[${index}+1]
cd ${dir_name}
echo ">>>>>>>>>>>>>>>>>>>>>>>>项目${item}切换到分支${fz}成功>>>>>>>>>>>>>>>>>>>>>>>>"
fi
done
echo ""
echo ">>>>>>>>>>>>>>>>>>>>>>>>本次共切换分支${#update_moudle[@]}个模块>>>>>>>>>>>>>>>>>>>>>>>>"
for((i=0;i<${#update_moudle[@]};i++))
do
echo ${update_moudle[i]}
done
}
function manager_git_code(){
dir_name=$1
echo ">>>>>>>>>>>>>>>>>>>>>>>>开始使用git编辑代码>>>>>>>>>>>>>>>>>>>>>>>>"
echo "1-拉取代码"
echo "2-切换分支"
echo "3-返回"
read -t 20 -p "请输入操作代码:" git_operate
case ${git_operate} in
"1")
git_pull ${dir_name}
;;
"2")
git_change_branch ${dir_name}
;;
"3")
clear
menu
;;
esac
}
function menu(){
echo ">>>>>>>>>>>>>>>>>>>>>>>>>功能菜单展示>>>>>>>>>>>>>>>>>>>>>>>>>"
echo "1-连接MySQL数据库"
echo "2-管理防火墙及端口"
echo "3-git管理项目代码"
read -t 20 -p "请输入需要执行的命令:" menu
clear
case ${menu} in
"1")
connect_mysql
;;
"2")
manager_firewall
;;
"3")
read -t 20 -p "请输入项目路径:" git_dir
clear
manager_git_code ${git_dir}
;;
esac
}
menu
注意
- 就是使用git功能的时候,如果是在windows中,粘贴路径的时候需要添加转义字符:
- 原因:是因为向函数传递参数的时候,会将斜杠当成转义字符
D:\dianwang\test
D\:\\dianwang\\test