1.if
类似于C/C++中的if-else语句。
if根据condition
的exit code
来判断condition
是真还是假,exit code=0
为真,exit code=其他
为假,为真的时候,就会执行then后面的语句,为假的话就会去执行别的语句。
1.1 单层if
命令格式
if condition
then
语句1
语句2
...
fi
示例
#! /bin/bash
a=3
b=4
if [ "$a" -lt "$b" ] && [ "$a" -gt 2 ]
then
echo ${
a}在范围内
fi
# 输出3在范围内
1.2 单层if-else
命令格式
if condition
then
语句1
语句2
...
else
语句1
语句2
...
fi
示例
#! /bin/bash
a=3
b=4
if ! [ "$a" -lt "$b" ]
then
echo ${
a}不小于${
b}
else
echo ${
a}小于${
b}
fi
# 输出 3小于4
1.3 多层if-elif-elif-else
命令格式
if condition
then
语句1
语句2
...
elif condition
then
语句1
语句2
...
elif condition
then
语句1
语句2
else
语句1
语句2
...
fi
示例
#! /bin/bash
a=4
if [ $a -eq 1 ]
then
echo ${
a}等于1
elif [ $a -eq 2 ]
then
echo ${
a}等于2
elif [ $a -eq 3 ]
then
echo ${
a}等于3
else
echo 其他
fi
# 输出 其他
2. case…esac形式
命令格式
case $变量名称 in
值1)
语句1
语句2
...
;; # 类似于C/C++中的break
值2)
语句1
语句2
...
;;
*) # 类似于C/C++中的default
语句1
语句2
...
;;
esac
示例
#! /bin/bash
a=4
case $a in
1)
echo ${
a}等于1
;;
2)
echo ${
a}等于2
;;
3)
echo ${
a}等于3
;;
*)
echo 其他
;;
esac