shell流程控制-case条件判断语句
2019-10-14 本文已影响0人
亮仔_c1b5
case多条件分支语句
case介绍
case语法
shell特殊变量
一、case介绍
在生产环境中,我们总会遇到一个问题需要根据不同的状况来执行不同的预案,那么我们要处理这样的问题就要首先根据可能出现的情况写出对应预案,根据出现的情况来加载不同的预案。
特点:根据给予的不同条件执行不同的代码块
比如你去相亲:你会在脑子里出现以下的预案:
第一眼看到对方父亲,你应该说:伯父好
第一眼看到对方母亲,你应该说:伯母好
第一眼看到对方奶奶,你应该说:奶奶好
。。。。
而这个例子中触发就是你第一眼看到了对方的谁,预案则是叫什么称呼。
再来说一个计算机的相关例子---监控内存使用率
内存使用率低于80%,脚本输出: 绿色字体的Memory use xx%
内存使用率大于80%小于90%,脚本输出: 黄色字体的Memory use xx%
内存使用率大于90%,脚本输出: 红字体的Memory use xx%
二、case语法
语法:
case 变量 in
条件1)
执行代码块1
;;
条件2)
执行代码块2
;;
......
esac
注意:每个代码块执行完毕要以;;结尾代表结束,case结尾要以倒过来写的esac来结束。
案例说明
!/bin/bash
read -p "NUM: " N
case $N in
- echo haha
;;
echo hehe
;;
- echo heihei
;;
*)
echo bye
;;
esac
执行输出
[root@www ~]# sh x1
NUM: 1
haha
[root@www ~]# sh x1
NUM: 2
hehe
[root@www ~]# sh x1
NUM: 3
heihei
[root@www ~]# sh x1
NUM: 4
bye
三、shell特殊变量
特殊参数
- $*: 代表所有参数,其间隔为IFS内定参数的第一个字元
- $@: 与*星号类同。不同之处在於不参照IFS
- $#: 代表参数数量
- $: 执行上一个指令的返回值
- $-: 最近执行的foreground pipeline的选项参数
- $$: 本身的Process ID
- $: 执行上一个背景指令的PID
- $_: 显示出最後一个执行的命令
- $N: shell的第几个外传参数