常用功能脚本编辑

97 阅读2分钟
  • 本篇文章的主要目的就是将Linux中常用的命令写成shell脚本
#!/bin/bash

#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>连接MySQL>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
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
}

#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>管理git代码>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#拉取代码
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[@]}个模块>>>>>>>>>>>>>>>>>>>>>>>>"
    # 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[@]}个模块>>>>>>>>>>>>>>>>>>>>>>>>"
    # 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

注意

  1. 就是使用git功能的时候,如果是在windows中,粘贴路径的时候需要添加转义字符:
    • 原因:是因为向函数传递参数的时候,会将斜杠当成转义字符
#真实路径
D:\dianwang\test

#添加转义符之后的路径
D\:\\dianwang\\test