shell综合项目

主菜单

shell综合项目_第1张图片

http和Nginx分别的install的菜单,安装过程通过重定向到/dev/null达到看不见的效果

shell综合项目_第2张图片shell综合项目_第3张图片

输入非整数或者大于4的数字都会提示错误

shell综合项目_第4张图片shell综合项目_第5张图片

代码如下:

[root@server ~]# vim install_menu.sh
#!/bin/bash

function menu()
{
cat << EOF                                                                                    #将内容显示到屏幕上
-----------------------------------------
|***************请输入选项**************|
-----------------------------------------
*$(echo -e "\033[35m 1)lamp install\033[0m")
*$(echo -e "\033[35m 2)lnmp install\033[0m")
*$(echo -e "\033[35m 3)quit\033[0m")
*$(echo -e "\033[35m 4)return main menu\033[0m")
EOF
}

function lamp_menu()
{
cat << EOF                                                                                  #将内容显示到屏幕上
-----------------------------------------
|***************请输入选项**************|
-----------------------------------------
*$(echo -e "\033[35m 1)http install\033[0m")
*$(echo -e "\033[35m 2)mysql install\033[0m")
*$(echo -e "\033[35m 3)php install\033[0m")
*$(echo -e "\033[35m 4)return main menu\033[0m")
EOF
read -p "####请输入子菜单lamp_menu的选项:" num2
expr $num2 + 1 &>/dev/null  #expr只支持整数运算,用于判断输入的是不是整数
if [ $? -ne 0 ] 
then                                                                                             #如果状态码不为0,代表输入不为整数
    echo "#################################"
    echo "输入错误,请输入整数"
    echo "#################################"
    sleep 1                                                                                    #等待一秒
elif [ $num2 -gt 4 ]                                                                       #如果输入选项大于4
then
    echo "#################################"
    echo "输入错误,选项超出范围"
    echo "#################################"
    sleep 1                                                                                    #等待一秒
fi
case $num2 in
    1)
    yum install httpd -y &> /dev/null
    if(($?==0))
    then
        echo "安装httpd成功"
    fi
    sleep 2
    lamp_menu                                                                          #返回二级菜单
    ;;    
    2)
    yum install mysql -y &>/dev/null
    if(($?==0))
    then
        echo "安装mysql成功"
    fi
    sleep 2
    lamp_menu                                                                          #返回二级菜单
    ;;
    3)
    yum install *php -y &>/dev/null #php有100多个小的子项,建议直接一起安装
    if(($?==0))
    then
        echo "安装php成功"
    fi
    sleep 2
    lamp_menu                                                                          #返回二级菜单
    ;;
    4)
    clear
    menu                                                                                    #返回主菜单
    ;;
    *)
    clear
    echo                                                                                     #输出换行符
    echo -e "\033[31m输入错误选项,请重新输入\033[0m"
    lamp_menu
esac
}
function lnmp_menu()
{
cat << EOF                                                                                #将内容显示到屏幕上
-----------------------------------------
|***************请输入选项**************|
-----------------------------------------
*$(echo -e "\033[35m 1)nginx install\033[0m")
*$(echo -e "\033[35m 2)mysql install\033[0m")
*$(echo -e "\033[35m 3)php install\033[0m")
*$(echo -e "\033[35m 4)return main menu\033[0m")
EOF
read -p "####请输入子菜单lamp_menu的选项:" num3
expr $num3 + 1 &> /dev/null  #expr只支持整数运算,用于判断输入的是不是整数
if [ $? -ne 0 ]                                                                     #如果上一条命令执行成功则状态码$?是0
then
    echo "#################################"
    echo "输入错误,请输入整数"
    echo "#################################"
    sleep 1                                                                                     #等待一秒
elif [ $num3 -gt 4 ] #如果输入选项大于4
then
    echo "#################################"
    echo "输入错误,选项超出范围"
    echo "#################################"
    sleep 1                                                                                     #等待一秒
fi
case $num3 in
    1)
    yum install nginx -y &> /dev/null
    if(($?==0))
    then
        echo "安装nginx成功"
    fi
    sleep 2
    lnmp_menu                                                                              #返回二级菜单
    ;;    
    2)
    yum install mysql -y &> /dev/null
    if(($?==0))
    then
        echo "安装mysql成功"
    fi
    sleep 2
    lnmp_menu                                                                              #返回二级菜单
    ;;
    3)
    yum install *php -y &> /dev/null
    if(($?==0))
    then
        echo "安装php成功"
    fi
    sleep 2
    lnmp_menu                                                                              #返回二级菜单
    ;;
    4)
    clear
    menu                                                                                        #返回主菜单
    ;;
    *)
    clear
    echo                                                                                        #输出换行符
    echo -e "\033[31m输入错误选项,请重新输入\033[0m"
    lnmp_menu #返回二级菜单
esac
}

clear
menu
while true
do
    read -p "请在主菜单输入选项:" num1
expr $num3 + 1 &> /dev/null  #expr只支持整数运算,用于判断输入的是不是整数
if [$? -ne 0]                                                                       #如果上一条命令执行成功则状态码$?是0
then
    echo "#################################"
    echo "输入错误,请输入整数"
    echo "#################################"
    sleep 1                                                                                      #等待一秒
elif [ $num3 -gt 4] #如果输入选项大于4
then
    echo "#################################"
    echo "输入错误,选项超出范围"
    echo "#################################"
    sleep 1                                                                                      #等待一秒
else
    case $num1 in
    1)
    clear
    lamp_menu
    ;;
    2)
    clear
    lnmp_menu
    ;;
    3)
    clear
    break
    ;;
    4)
    clear
    menu
    ;;
    *)
    clear
    echo -e "\033[31m输入错误选项,请重新输入\033[0m"
    menu
    esac
fi
done

你可能感兴趣的:(运维,笔记)