zoukankan      html  css  js  c++  java
  • linux基础(10)-导航菜单

    导航菜单实战

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

    #!/bin/bash
    #############################
    #文件名称:install_hadoop_menu.sh
    #作者姓名:wujiadong
    #创建日期:2016-07-08 
    #############################
    
    #主菜单 显示
    while true
        do
        clear
        echo -e "
    
     		 33[40;32m ====飞谷安装hadoop主界面=====33[1m 		"
        echo -e "
    "
        echo -e "	"1)安装hadoop
        echo -e "	"2)安装hbase
        echo -e "	"3)安装zookeeper
        echo -e "	"4)安装hive
        echo -e "	"5)安装pig
        echo -e "	"6)安装spark
        echo -e "	"7)选择组件安装
        echo -e "	"8)一键安装所有
        echo -e "	"0)退出
        echo -e "
    "
        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 "
    
     		 33[40;32m =====请选择需要安装的组件=====33[1m 		"
        echo -e "
    "
        echo -e "	" 1)安装hadoop
        echo -e "	" 2)安装hbase
        echo -e "	" 3)安装zookeeper
        echo -e "	" 4)安装hive
        echo -e "	" 5)安装pig
        echo -e "	" 6)安装spark
        echo -e "	" 0)返回
        echo -e "
    "
        echo "请选择需要安装组件的代码,多选以逗号分隔:"
        read choice    #将屏幕输出的内容保存到choice变量里面
    
    ###一个case语句
        case $choice in
            0) break;;
        esac
    V_INPUT=`echo $choice|sed 's/,/
    /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'
  • 相关阅读:
    Script.NET Perl解释器代码已经在GitHub开源发布
    hdu 1754 I Hate It (splay tree伸展树)
    【读书笔记】淘宝技术这十年
    raid*
    点到点,端到端概念
    Linux下oracle导入(exp)导出(imp)出现"Failed to open ...for reader/write"错误
    gpgcheck
    linux硬件时间修改与查看
    oracle makefile
    linux rar工具
  • 原文地址:https://www.cnblogs.com/wujiadong2014/p/5714994.html
Copyright © 2011-2022 走看看