首页 > 其他分享 >制作可以用来控制vsftpd服务的菜单

制作可以用来控制vsftpd服务的菜单

时间:2024-06-01 12:04:25浏览次数:23  
标签:ftp 菜单 函数 eq vsftpd && msg 制作

1:创建菜单函数文件

    #vim menu                #创建文件
    x=1                    #高亮行号,默认为1即可
    y=0                    #第几行
    menu (){                #循环显示菜单的函数
        clear
        for i in 1,安装ftp服务 2,开关ftp服务 3,退出
        do
            echo "----------------"
            let y++
            [ $x -eq $y ] && echo -e "\033[43;93m$i\033[0m" && continue
            echo "$i"
        done
        y=0
        echo "----------------"
    }

2:可动菜单

$'\033[A'代表键盘的 "上" 按键

$'\033[B'代表键盘的 "下" 按键

    #vim ftp.sh
    #!/bin/bash
    . menu            #读入菜单函数
    while :
    do
        menu
        read -n 3 c    #-n 3是输入足够3个字符就自动进行下一步,c是存储字符的变量
        if [ "$c" == $'\033[A' ];then        #如果按了 "上" 键
            [ $x -eq 1 ] && continue        #根据变量x定义高亮行,在第1行就没变化
            let x--                        #如果不在第1行,就把x-1
        elif [ "$c" == $'\033[B' ];then    #如果按了 "下" 键
            [ $x -eq 3 ] && continue        #如果在第3行,没变化
            let x++                        #如果不在第3行,就把x+1        
        fi
    done

之后执行ftp.sh可以看到菜单,按键盘上下键菜单发生变化

3:创建ftp安装函数文件

    #vim ftp_install            #创建函数文件
    ftp_install(){
        if rpm -q vsftpd &> /dev/null ;then        #ftp如果已经安装则条件算成功
            msg="vsftpd已安装"                    #定义信息变量msg
        else
            yum -y install vsftpd &> /dev/null
            [ $? -eq 0 ] && msg="vsftpd安装成功" || msg="vsftpd安装失败"
        fi
    }

4:创建服务管理函数文件

    #vim ser_manager            #创建服务管理的函数文件
    ser_manager(){
        if ! rpm -q vsftpd &>/dev/null ;then    #ftp如果未安装则条件算成功,!是取反
            msg="未安装vsftpd软件包"
            return                                #结束函数任务,跳出函数
        fi
        case $1 in
        start)                                #调用本函数后追加start就是把服务开启
            systemctl start vsftpd
            msg="ftp服务已经启动"
            ser_manager=start;;
        stop)                                    #调用本函数后追加stop就是把服务关闭
            systemctl stop vsftpd
            msg="ftp服务已经关闭"
            ser_manager=stop;;
        esac
    }

 5:完善主程序

    #vim ftp.sh
    #!/bin/bash
    . menu            #读入菜单函数
    . ftp_install        #读入安装函数
    . ser_manager        #读入服务管理函数
    while :
    do
        menu
        echo "$msg"
        read -n 3 c    #-n 3是输入足够3个字符就自动进行下一步,c是存储字符的变量
        if [ "$c" == $'\033[A' ];then        #如果按了 "上" 键
            [ $x -eq 1 ] && continue        #根据变量x定义高亮行,在第1行就没变化
            let x--                        #如果不在第1行,就把x-1
        elif [ "$c" == $'\033[B' ];then    #如果按了 "下" 键
            [ $x -eq 3 ] && continue        #如果在第3行,没变化
            let x++                        #如果不在第3行,就把x+1
        elif [ -z $c ] && [ $x -eq 1 ];then        #如果在第1行回车就执行下列任务
            msg="ftp服务安装中。。。"
            echo "$msg"
            ftp_install                        #执行ftp_install函数的任务
        elif [ -z $c ] && [ $x -eq 2 ];then        #如果在第2行回车就执行下列任务
            [ "$ser_manager" != "start" ] && ser_manager start || ser_manager stop
        elif [ -z $c ] && [ $x -eq 3 ];then        #如果在第3行回车就执行下列任务
            exit
        fi
    done

标签:ftp,菜单,函数,eq,vsftpd,&&,msg,制作
From: https://blog.csdn.net/SagusaMayumi/article/details/139371346

相关文章