linux基础(10)-导航菜单

导航菜单实战

例:编写一个shell脚本,包含多个菜单,其中需要一个退出选项;可单选也可多选;根据序号选择后,显示所选菜单名称。

 

#!/bin/bash
#############################
#文件名称:install_hadoop_menu.sh
#作者姓名:wujiadong
#创建日期:2016-07-08 
#############################

#主菜单 显示
while true
    do
    clear
    echo -e "\n\n \t\t \033[40;32m ====飞谷安装hadoop主界面=====\033[1m \t\t"
    echo -e "\n"
    echo -e "\t"1\)安装hadoop
    echo -e "\t"2\)安装hbase
    echo -e "\t"3\)安装zookeeper
    echo -e "\t"4\)安装hive
    echo -e "\t"5\)安装pig
    echo -e "\t"6\)安装spark
    echo -e "\t"7\)选择组件安装
    echo -e "\t"8\)一键安装所有
    echo -e "\t"0\)退出
    echo -e "\n"
    echo -e "请选择"
    read choice             #将输入的序号存入choice这个变量

    case $choice in
        0)
            break;;
        1)
                        echo "正在安装hadoop..."
                        sleep 5
                        echo "hadoop安装成功,请按回车,选择其他内容"
                        read menu
                        continue;;
        2)

                        echo "正在安装habase..."
                        sleep 5
                        continue;;
        3)
                        echo "正在安装hbase..."
                        sleep 5
                        continue;;
        4)
                        echo "正在安装zookeeper..."
                        sleep 4
                        continue;;
        5)
                         echo "正在安装pig..."
                        sleep 3
                        continue;;
        6)
                        echo "正在安装spark..."
                        sleep 3
                        continue;;
        7)
                        echo "进入选择安装hadoop组件界面"
                        sh select.sh
                        continue;;
        8)
                        echo "正在安装以上所有组件"
                        sleep 3
                        continue
    esac

done 

 

#!/bin/bash
###############################
#文件名称:select.sh
#作者姓名:邬家栋
#创建日期:2016-07-08
###############################
#主菜单 显示
clear

while true
    do
    clear
    echo -e "\n\n \t\t \033[40;32m =====请选择需要安装的组件=====\033[1m \t\t"
    echo -e "\n"
    echo -e "\t" 1\)安装hadoop
    echo -e "\t" 2\)安装hbase
    echo -e "\t" 3\)安装zookeeper
    echo -e "\t" 4\)安装hive
    echo -e "\t" 5\)安装pig
    echo -e "\t" 6\)安装spark
    echo -e "\t" 0\)返回
    echo -e "\n"
    echo "请选择需要安装组件的代码,多选以逗号分隔:"
    read choice    #将屏幕输出的内容保存到choice变量里面

###一个case语句
    case $choice in
        0) break;;
    esac
V_INPUT=`echo $choice|sed 's/,/\n/g'`   #|管道是将前面命令的输出作为后面命令的输入。sed 语句将逗号变成换行符,变成了多行文件。
for i in $V_INPUT                #for循环读取该文件
do
    j=`grep $i select_sub.lst`
    var1=`echo $j | awk -F,'{print $2}'`
    echo "正在安装${var}..."
    sleep 5

    if [ $? -eq 0 ]; then
        echo "安装${var1}成功"|tee a install.log
    else
        echo"安装${var1}失败"|tee a install.log
    fi

done

done

 

#!/bin/bash
##########################
#文件名称:select_sub.lst
#作者姓名:邬家栋
#创建日期:2016-07-08
#########################3

1,安装hadoop
2,安装hbase
3,安装zookeeper
4,安装hive
5,安装pig
6,安装spark

 

执行sh install_hadoop_mainmenu.sh

选1之后

选7之后

注释:
反引号:在执行一条命令时,会先将其中的``语句当做命令执行一遍,再将结果加入到原命令中重新执行。和${}是一样的
 sed的替换:'s/旧字符/新字符/g'

 

posted @ 2016-07-28 15:34  邬家栋  阅读(765)  评论(0编辑  收藏  举报