shell脚本综合项目练习

shell实现多级菜单脚本编写

提示

  • 本脚本主要实现多级菜单效果,并没有安装LAMP、LNMP环境,如果要用在实际生成环境中部署LNMP、LAMP环境,只需要简单修改一下就可以了。

[root@server ~]# vim  multi_menu.sh 
#!/bin/bash
#
function menu(){
cat << EOF
----------------------------------------------
|*******Please Enter Your Choice:[1-4]*******|
----------------------------------------------
*   `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
----------------------------------------------
|*******Please Enter Your Choice:[1-4]*******|
----------------------------------------------
*   `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 "####please input second_lamp optios[1-4]: " num2
expr $num2 + 1 &>/dev/null  #这里加1,判断输入的是不是整数。
if [ $? -ne 0 ]
then    #如果不等于零,代表输入不是整数。
 echo "###########################"
 echo "Waing !!!,input error   "
 echo "Please enter choose[1-4]:"
 echo "##########################"
 sleep 1
else
 if [ $num2 -gt 4 ]
 then
   echo "###########################"
   echo "Waing !!!,Out of range   "
   echo "Please enter choose[1-4]:"
   echo "##########################"
   sleep 1
 fi
fi
case $num2 in
  1)
   yum  install  httpd  -y  &>  /dev/null
   if(($?==0))
   then
           echo  "安装httpd成功"
   fi
   sleep 2
   lamp_menu
   ;;
  2)
   # yum 安装 MySQL...
   if(($?==0))
   then
           echo  "安装mysql成功"
   fi
   sleep 2
   lamp_menu
   ;;
  3)
   # yum 安装 PHP...
   if(($?==0))
   then
           echo  "安装php成功"
   fi
   sleep 2
   lamp_menu
   ;;
  4)
   clear
   menu
   ;;
  *)
   clear
   echo 
   echo -e "\033[31mYour Enter the wrong,Please input again Choice:[1-4]\033[0m"
   lamp_menu
esac
}


function lnmp_menu(){
cat << EOF
----------------------------------------------
|*******Please Enter Your Choice:[1-4]*******|
----------------------------------------------
*   `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 "please input second_lnmp options[1-4]: " num3
expr $num3 + 1 &>/dev/null  #这里加1,判断输入的是不是整数。
if [ $? -ne 0 ]
then  #如果不等于零,代表输入不是整数。
 echo "###########################"
 echo "Waing !!!,input error   "
 echo "Please enter choose[1-4]:"
 echo "##########################"
 sleep 1
else
 if [ $num3 -gt 4 ]
 then
   echo "###########################"
   echo "Waing !!!,Out of range   "
   echo "Please enter choose[1-4]:"
   echo "##########################"
   sleep 1
 fi 
fi
case $num3 in
   1)
     # yum 安装 Nginx...
     if(($?==0))
     then
           echo  "安装nginx成功"
     fi
     sleep 2
     lnmp_menu
     ;;
   2)
    # yum 安装 MySQL...
    if(($?==0))
    then
           echo  "安装mysql成功"
    fi
    sleep 2
    clear
    lnmp_menu
    ;;
   3)
     # yum 安装 PHP...
     if(($?==0))
     then
           echo  "安装php成功"
     fi
     sleep 2
     clear
     lnmp_menu
     ;;
   4)
    clear
    menu
    ;;
   *)
    clear
    echo
    echo -e "\033[31mYour Enter the wrong,Please input again Choice:[1-4]\033[0m"
    lnmp_menu
esac
}



clear
menu
while true 
do
  read -p "##please Enter Your first_menu Choice:[1-4] " num1
  expr $num1 + 1 &>/dev/null   #这里加1,判断输入的是不是整数。
  if [ $? -ne 0 ]
  then   #如果不等于零,代表输入不是整数。
    echo "----------------------------"
    echo "|      Waring!!!           |"
    echo "|Please Enter Right Choice!|"
    echo "----------------------------"
    sleep 1
  elif [ $num1 -gt 4 ]
  then # 输入数字超范围
    echo "----------------------------"
    echo "|      Waring!!!           |"
    echo "|    Out of range!         |"
    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[31mYour Enter a number Error,Please Enter again Choice:[1-4]: \033[0m"       
      menu
   esac
  fi
done

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

桔梗.py

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值