导航菜单实战

例:编写一个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. tomcat添加crt证书

    使用keytool生成证书苹果手机添加后提示未验证,可以使用Apache的openssl生成证书导入到tomcat中. 使用Apache 生成证书:openssl genrsa 4096 > s ...

  2. [Spring Data MongoDB]学习笔记--_id和类型映射

    _id字段的映射: MongoDB要求所有的document都要有一个_id的字段. 如果我们在使用中没有传入_id字段,它会自己创建一个ObjectId. { , "accounts&qu ...

  3. SharePoint服务器端对象模型 之 访问文件和文件夹(Part 1)

    本节中所阐述的内容,主要适用于SharePoint文档库中的文件和文件夹,以及列表中的文件夹.系统中的其他文件(如_layouts中的文件.配置文件.程序文件等)不在本章节的讨论范围之内.   (一) ...

  4. android菜鸟学习笔记29----Android应用向用户发送提示信息的方式总结

    常见的向用户发送提示信息的方式有3种,分别为: 1)发送Toast信息 2)弹出对话框 3)发送通知 总结如下: 方式1:发送Toast信息: 这种方式最简单,在之前的学习中多次使用过.Toast是在 ...

  5. django的ORM中的2个易混点

    1.django数据模型中null=True和blank=True的区别 null 是针对数据库而言,如果 null=True, 表示数据库的该字段可以为空,即在Null字段显示为YES. blank ...

  6. 构造函数强制使用new

    function Car(model, year, miles) { if (!(this instanceof Car)) { return new Car(model, year, miles); ...

  7. golang 面向对象

    深入理解GO语言的面向对象_Golang_脚本之家 https://www.jb51.net/article/94030.htm 深入理解GO语言的面向对象 更新时间:2016年10月04日 10:4 ...

  8. window子对象

    Window 子对象 (1)Location 对象 Location 对象包含有关当前 URL(统一资源定位符) 的信息.(Uniform Resource Location) Location 对象 ...

  9. js实现文字列表无缝向上滚动

    body{font-size:12px} #demo{overflow:hidden; height:80px; width:280px; margin:90px auto; position:rel ...

  10. Django 之 权限系统(组件)

    参考: http://www.cnblogs.com/yuanchenqi/articles/7609586.html