【Linux_Shell 脚本编程学习笔记二、打印菜单】
综合实例: 打印选择菜单,一键安装Web服务
[root@zuoyan script]# sh menu.sh
1.【install lamp】
2. 【install lnmp】
3. 【exit】
要求:
1、当用户输入1时,输出 “start installing lamp.” 然后执行 /server/script/lamp.sh, 脚本内容输出 " lamp is install " 后退出脚本
2、当用户输入2时,输出 "start installing lnmp." 然后执行 /server/script/lnmp.sh ,输出 " lnmp is installed " 后退出脚本;
3、当输入 3 时,退出当前菜单及脚本
4、当输入任何其它字符,给出提示 “ input error ” 后退出脚本
5、要对执行的脚本机型相关条件判断,例如脚本是否存在,是否可执行。

# 打印一个环境安装的脚本
menu(){
cat <<END
.[install lamp]
.[install lnmp]
.[exit]
please input the num you want
END
}
# 执行打印菜单
menu # 读入一个执行的编号
read num
[ "$num" = "" ] &&{
echo "start install lamp."
# 检查安装的脚本是否有执行权限
[ -x /root/Desktop/workspace/shell/Demo01/script/lamp.sh ] || {
# 如果没有执行权限
echo "You don't have execute permission"
exit
}
# 如果有执行权限则执行
/root/Desktop/workspace/shell/Demo01/script/lamp.sh
exit
} [ "$num" = "" ] && { echo "执行安装lnmp 的业务逻辑"
exit
} [ "$num" = "" ]&& { echo "退出安装"
exit
}
【Linux_Shell 脚本编程学习笔记二、打印菜单】的更多相关文章
- 【Linux_Shell 脚本编程学习笔记四、监控系统内存并报警企业案例脚本】
前置知识:awk 参考学习博客:https://www.cnblogs.com/bugingcode/p/8287914.html awk 'BEGIN{ commands } pattern{ co ...
- 【Linux_Shell 脚本编程学习笔记六、shell的数值运算】
1.bc 命令的用法(可以整数也可以小数): bc是 UNIX下的计算器,它也可以用在命令行下面: 例: 给自变量 i 加 1 [root@docker Demo_test]# i= [root@do ...
- 【Linux_Shell 脚本编程学习笔记五、Oracle JDK1.8 安装shell 脚本】
脚本使用说明: 首先在脚本的同级目录下有个 jdk的安装包 脚本和安装包必须在同级目录下才能够安装(脚本没有优化,还可以使用 wget 从网上下载指定版本的 jdk 安装包) #!/bin/sh ...
- 【Linux_Shell 脚本编程学习笔记三、分支与循环结构】
if 语句是实际生产工作中最重要且最常用的语句,所以,必须掌握牢固 if 条件语法 1. 单分支机构 if [ 条件 ] then 指令 fi 或 if [ 条件 ]; then 指令 fi ...
- 【Linux_Shell 脚本编程学习笔记一、条件表达式】
条件表达式返回的结果都为布尔型 真为1,假为0 条件测试的表达式 [expression] 比较符 整数比较 -eq:比较两个整数是否相等,$A -eq $B -ne:测试两个整数是否不等,不等则为真 ...
- Bash脚本编程学习笔记08:函数
官方资料:Shell Functions (Bash Reference Manual) 简介 正如我们在<Bash脚本编程学习笔记06:条件结构体>中最后所说的,我们应该把一些可能反复执 ...
- Bash脚本编程学习笔记07:循环结构体
本篇中涉及到算术运算,使用了$[]这种我未在官方手册中见到的用法,但是确实可用的,在此前的博文<Bash脚本编程学习笔记03:算术运算>中我有说明不要使用,不过自己忘记了.大家还是尽量使用 ...
- Bash脚本编程学习笔记06:条件结构体
简介 在bash脚本编程中,条件结构体使用if语句和case语句两种句式. if语句 单分支if语句 if TEST; then CMD fi TEST:条件判断,多数情况下可使用test命令来实现, ...
- bash脚本编程学习笔记(二)
1.脚本编程之函数 函数是实现结构化编程重要的思想,主要目的是实现代码重用 定义一个函数: function FUNCNAME { command //函数体 } FUNCNAME(){ //函数 ...
随机推荐
- Java 继承(extends)、抽象类(abstract)的特点用法原理(7)
Java 中的继承 继承: java中的抽象类用法原理: /* 当多个类中出现相同功能,但是功能主体不同, 这是可以进行向上抽取.这时,只抽取功能定义,而不抽取功能主体. 抽象:看不懂. 抽象类的特 ...
- POJ 1860 Currency Exchange【bellman-Ford模板题】
传送门:http://poj.org/problem?id=1860 题意:给出每两种货币之间交换的手续费和汇率,求出从当前货币s开始交换回到s,能否使本金增多. 思路:bellman-Ford模板题 ...
- 史上最难PHPer笔试题,40分就能月薪过万!附答案
请批判性的学习,欢迎大牛指正错误 1.有关PHP字符串的说法,不对的是:A.如果一个脚本的编码是 ISO-8859-1,则其中的字符串也会被编码为 ISO-8859-1.B.PHP的字符串在内部是字节 ...
- Gradle project sync failed. Please fix your project and try again
https://stackoverflow.com/questions/29808199/error-running-android-gradle-project-sync-failed-please ...
- Ivory Coast Map
Fun Facts about Cote d'Ivoire The Republic of Cote d'Ivoire (previously known as the Ivory Coast) is ...
- python-变量及其数据类型-01
目录 python-变量及其数据类型-01 1. 第一个python程序 2. 注释 3. 变量 4. 关键字 5. 变量的类型 python-变量及其数据类型-01 1. 第一个python程序 p ...
- netty 百度网盘 密码
netty基础 https://pan.baidu.com/s/1v_ME49LIef1Kwga8z2QbDw?spm=a1z09.2.0.0.680b2e8d5LI8S0 zb7u mina n ...
- 使用迅为itop4418开发板创建Android模拟器
基于迅为iTOP-4418开发部在 Eclipse 中,单击“Windows”菜单,选择“Android Virtual Device Manager”启动 模拟器管理插件.然后如下图,单击“Crea ...
- 异常处理和UDP协议
一.什么是异常? 程序在运行过程中出现了不可预知的错误,并且该错误没对应的处理机制,那么就会以异常的形式表示出来, 造成的影响就是整个程序无法再正常的运行,抛出异常. 二.异常的结构: 1:异常的类型 ...
- Pooled genome sequence strategies |representative genome assembly approaches|Domestication|GERP|selective sweep|Hybridization|Introgression|iHS|SNP genotyping arrays|haplotype
Design based on biology 通过比较基因组学的方法,将脊椎动物基因组的数据,解决生物学各方面问题.新的调控注释(在脊椎动物的进化过程中的出现的)可以丰富物种树(比如不同功能蛋白质进 ...