Shell-流程控制
二月 25, 2021
if-else语句
if语法
多行形式
1 | if 条件 |
单行形式
1 | if 条件; then 命令; fi |
if-else语法
1 | if 条件 |
if-elif-else语法
1 | if 条件1 |
if条件判断句的退出状态
linux任何命令的执行都有一个退出状态,无论是内置命令、外部文件命令还是自定义的Shell函数
当它退出即运行结束时,都会返回一个比较小的整数值给调用它的程序
这个就是命令的退出状态
大多数命令状态都是0代表成功,非0代表失败我们常用
$?
获取上一个命令的命令状态
而我们的if语句就是根据逻辑运算符的退出状态码来确定走哪一条语句
case语句
1 | case $num in |
仅支持简单正则表达式
格式 | 说明 |
---|---|
* |
表示任意字符串 |
[abc] |
表示a、b、c三个字符中任意一个。比如,[15ZH]表示1、5、Z、H四个字符中任意一个 |
m-n |
表示从m到n的任意一个字符。比如,[0-9]表示任意一个数字,[0-9a-zA-Z]表示字母或数字 |
` | ` |
while语句
多行形式
1 | while 条件 |
当行形式
1 | while 条件; do 命令; done; |
无限循环
1 | 方式一 |
until语句
也是循环语句,但是和while的处理方式是相反的,条件为false的时候才会继续循环,true时会停止循环
1 | until 条件 |
for语句
多行形式
1 | 方式1 |
一行形式
1 | for var in 1 2 3; do echo "This is number${var}"; done; |
select语句
select in
循环能够进行菜单选择输入,可以增强交互性,它可以显示出带编号的菜单,用户输入不同的编号就能选择不同的菜单,并执行不同功能
1 | select name in "jia" "juu" "jiajuu" |
注意:
select是死循环,输入空值或输入无效值都不会结束循环,只能通过
break
语句或者Ctrl+D
来结束循环执行过程中,终端会输出
$?
来显示输入选择的菜单编号
查看评论