3. shell语法——判断语句
if…then形式
类似于C/C++
中的if-else
语句。
单层if
命令格式:
1 2 3 4 5 6
| if condition then 语句1 语句2 ... fi
|
示例:
1 2 3 4 5 6 7
| a=3 b=4
if [ "$a" -lt "$b" ] && [ "$a" -gt 2 ] then echo ${a}在范围内 fi
|
输出结果:
单层if-else
命令格式
1 2 3 4 5 6 7 8 9 10
| if condition then 语句1 语句2 ... else 语句1 语句2 ... fi
|
示例:
1 2 3 4 5 6 7 8 9 10
| a=3 b=4
if ! [ "$a" -lt "$b" ] then echo ${a}不小于${b} else echo ${a}小于${b} fi
|
输出结果:
多层if-elif-elif-else
命令格式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| if condition then 语句1 语句2 ... elif condition then 语句1 语句2 ... elif condition then 语句1 语句2 else 语句1 语句2 ... fi
|
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| 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
|
输出结果:
case…esac形式
类似于C/C++
中的switch
语句。
命令格式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| case $变量名称 in 值1) 语句1 语句2 ... ;; # 类似于C/C++中的break 值2) 语句1 语句2 ... ;; *) # 类似于C/C++中的default 语句1 语句2 ... ;; esac
|
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| a=4
case $a in 1) echo ${a}等于1 ;; 2) echo ${a}等于2 ;; 3) echo ${a}等于3 ;; *) echo 其他 ;; esac
|
输出结果: