在shell中应用 && 和 || 就能完成大量的判断,如果需要更复杂的判断,可以使用 if 进行
shell 中的 if 判断语句有三种格式,分别是单分支if语句、双分支if语句和多分支if语句
1. 单分支if语句
- 单分支if语句表示只有一个判断条件,如果满足则执行,如果不满足则不执行
- if语句后面的条件测试语句不一定非要是test或[]测试语句,任何有返回值的命令都可以写在if语句后面,命令返回值为0代表执行成功(即为真),返回值非0代表执行失败(即为假)
if 判断条件 #进行判断
then 执行语句 #满足判断条件时,执行此语句,否则执行
fi #表示判断语句终结
(base) [zhiyong@malab Learn]$ x=5
(base) [zhiyong@malab Learn]$ if [ $x -gt 1 ] #进行条件判断
> then echo "Yes" #条加满足时执行此语句
> fi #结束条件判断
Yes #输出值
(base) [zhiyong@malab Learn]$ if [ $x -gt 1 ]; then echo "Yes"; fi #以上语句也可以写成这种形式
Yes #输出结果相同
2. 双分支if语句
- 所谓双分支if语句,就是有两个分支的if语句,往往是包含一个else
if 判断条件
then 执行语句一
else 执行语句二
fi
(base) [zhiyong@malab Learn]$ if [ $x -gt 9 ] #进行条件判断
> then echo "good" #如果满足条件则执行语句一
> else echo "bad" #如果不满足条件则执行语句二
> fi #结束判断语句
bad #输出结果
3. 多分支if语句
- 指有三个或三个以上分支的if判断语句
if 判断语句一
then 执行语句一
elif 判断语句二
then 执行语句二
else 执行语句三
fi
(base) [zhiyong@malab Learn]$ if [ $x -lt 3 ]
> then echo "good_1"
> elif [ $x -eq 4 ]
> then echo "good_2"
> else echo "good_3"
> fi
good_3
网友评论