导航菜单实战

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

#!/bin/bash
#############################
#文件名称:install_hadoop_menu.sh
#作者姓名:wujiadong
#创建日期:--
############################# #主菜单 显示
while true
do
clear
echo -e "\n\n \t\t \033[40;32m ====飞谷安装hadoop主界面=====\033[1m \t\t"
echo -e "\n"
echo -e "\t"\)安装hadoop
echo -e "\t"\)安装hbase
echo -e "\t"\)安装zookeeper
echo -e "\t"\)安装hive
echo -e "\t"\)安装pig
echo -e "\t"\)安装spark
echo -e "\t"\)选择组件安装
echo -e "\t"\)一键安装所有
echo -e "\t"\)退出
echo -e "\n"
echo -e "请选择"
read choice #将输入的序号存入choice这个变量 case $choice in
)
break;;
)
echo "正在安装hadoop..."
sleep
echo "hadoop安装成功,请按回车,选择其他内容"
read menu
continue;;
) echo "正在安装habase..."
sleep
continue;;
)
echo "正在安装hbase..."
sleep
continue;;
)
echo "正在安装zookeeper..."
sleep
continue;;
)
echo "正在安装pig..."
sleep
continue;;
)
echo "正在安装spark..."
sleep
continue;;
)
echo "进入选择安装hadoop组件界面"
sh select.sh
continue;;
)
echo "正在安装以上所有组件"
sleep
continue
esac done
#!/bin/bash
###############################
#文件名称:select.sh
#作者姓名:邬家栋
#创建日期:--
###############################
#主菜单 显示
clear while true
do
clear
echo -e "\n\n \t\t \033[40;32m =====请选择需要安装的组件=====\033[1m \t\t"
echo -e "\n"
echo -e "\t" \)安装hadoop
echo -e "\t" \)安装hbase
echo -e "\t" \)安装zookeeper
echo -e "\t" \)安装hive
echo -e "\t" \)安装pig
echo -e "\t" \)安装spark
echo -e "\t" \)返回
echo -e "\n"
echo "请选择需要安装组件的代码,多选以逗号分隔:"
read choice #将屏幕输出的内容保存到choice变量里面 ###一个case语句
case $choice in
) 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 if [ $? -eq ]; then
echo "安装${var1}成功"|tee a install.log
else
echo"安装${var1}失败"|tee a install.log
fi done done
#!/bin/bash
##########################
#文件名称:select_sub.lst
#作者姓名:邬家栋
#创建日期:--
######################### ,安装hadoop
,安装hbase
,安装zookeeper
,安装hive
,安装pig
,安装spark

执行sh install_hadoop_mainmenu.sh

选1之后

选7之后

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

linux基础(10)-导航菜单的更多相关文章

  1. 《前端运维》一、Linux基础--10定时任务

    一.进程管理 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.在早期面向进程设计的计算机结构中,进程是程序的基本执行实体 ...

  2. Linux基础(10)AIO项目设计与POSIX文件操作和目录管理

    实现fast-cp :拷贝文件到目标对象 Linux的七种文件类型 :https://blog.csdn.net/linkvivi/article/details/79834143 ls -al :h ...

  3. 『学了就忘』Linux基础 — 10、VMware虚拟机中克隆的使用

    目录 1.什么是克隆 2.克隆的两种类型 (1)完整克隆 (2)链接克隆 3.克隆操作 步骤一:克隆虚拟机 步骤二:进行克隆导向 3.快照与克隆的区别 4.镜像的管理 快照和克隆是VMware中两个非 ...

  4. A:linux基础章节导航

    本章的内容主要有: 模板机的安装 常用的小命令 find awk vim sed

  5. bootstrap基础学习【菜单、按钮、导航】(四)

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  6. Netsharp快速入门(之6) 基础档案(创建导航菜单)

    作者:秋时 杨昶   时间:2014-02-15  转载须说明出处 1.1     创建导航菜单 1.在Demo节点下,录入路径名称,并在下方录入两个导航页签名 2.建立分类,只要填路径名 3.双击基 ...

  7. linux 学习10 shell 基础

    10.1 Shell概述 .Shell是什么 Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动.挂起.停止甚至是编写一 ...

  8. Linux基础学习系列目录导航

    Linux基础学习-通过VM安装RHEL7.4 Linux基础学习-命令行与图形界面切换 Linux基础学习-基本命令 Linux基础学习-RHEL7.4之YUM更换CentOS源 Linux基础学习 ...

  9. 【Python之路】第一篇--Linux基础命令

    pwd 命令 查看”当前工作目录“的完整路径 pwd -P # 显示出实际路径,而非使用连接(link)路径:pwd显示的是连接路径 .   表示当前目录 ..  表示上级目录 /  表示根目录 ls ...

随机推荐

  1. OKhttp3

    针对上一博文订单调用用户使用默认数据交互方式,下面介绍下使用 Okhttp3网络数据交换方式. 1.订单启动类变化 package com.tycoon.orderService; import or ...

  2. Keywords Search(AC自动机模板)

    Keywords Search Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others ...

  3. B. No Time for Dragons(贪心)

    B. No Time for Dragons time limit per test 2.0 s memory limit per test 256 MB input standard input o ...

  4. E - Rails (栈)

    E - Rails Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Description The ...

  5. 巨蟒python全栈开发django8:基于对象和基于双下划线的多表查询

    1.编辑删除&&多对多关系的其他方法 提交,数据,得到结果 查看运行 给编辑和删除,添加样式 我们点击删除,可以成功删除 打印sql语句的,在settings.py里边的配置 LOGG ...

  6. Power Systems 虚拟化简介

    本文向您详细地介绍了 Power System 虚拟化相关的技术和亮点,让您对这些最新的虚拟化技术有一个全面的了解.本文来自 IBM Systems Magazine for AIX 中文版. 自从引 ...

  7. 007-搭建框架-开发AOP框架

    一.代码地址 https://github.com/bjlhx15/smart-framework.git 二.代码编写 2.1.定义切面注解 增加Aspect注解 package com.lhx.s ...

  8. Oracle学习笔记—常用函数

    这里记录一些oracle常用的函数. TO_NUMBER()函数 将字符串类型转换成一个 number 类型的值. SELECT TO_NUMBER('100.00') FROM DUAL; TO_C ...

  9. Java基础—String总结

    特点 String不属于8种基本数据类型,String是一个对象. 因为对象的默认值是null,所以String的默认值也是null:但它又是一种特殊的对象,有其它对象没有的一些特性. String实 ...

  10. Spring学习笔记1—依赖注入(构造器注入、set注入和注解注入)

    什么是依赖注入 在以前的java开发中,某个类中需要依赖其它类的方法时,通常是new一个依赖类再调用类实例的方法,这种方法耦合度太高并且不容易测试,spring提出了依赖注入的思想,即依赖类不由程序员 ...