步骤一:
#vim ftp_install #创建ftp安装函数文件
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
}
步骤二:
#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
}
继续完善主程序
#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