[root@localhost shell]# vi if03.sh #!/bin/bash a=4 if [ $a -lt 1 ] //先判断是否满足,不满足跳到elif,两个都不满足执行else退出 then echo ok elif [ $a -gt 1 ] then echo ">1" else echo oh,no fi
[root@localhost shell]# bash -x if03.sh
- a=4
- (( 4<1 ))
- (( 4>1 ))
- echo '>1'
1
[root@localhost shell]# cat if04.sh #!/bin/bash a=5 if [ $a -lt 1 ] then echo "<1" elif [ $a -gt 100 ] then echo ">1" elif [ $a -gt 1 ] && [ $a -lt 10 ] //注意&&还是||必须[]分割开 then echo "ok" else echo "on ok" fi [root@localhost shell]# bash -x if04.sh
- a=5
- '[' 5 -lt 1 ']'
- '[' 5 -gt 100 ']'
- '[' 5 -gt 1 ']'
- '[' 5 -lt 10 ']'
- echo ok ok
-
逻辑判断表达式:if [ $a -gt $b ]; if [ $a -lt 5 ]; if [ $b -eq 10 ]等 -gt (>); -lt(<); -ge(>=); -le(<=);-eq(==); -ne(!=) 注意到处都是空格 -gt 大于 -lt 小于 -eq 等于 -ne 不等于 -ge 大于等于 -le 小于等于
-
可以使用 && || 结合多个条件 5.1 if [ $a -gt 5 ] && [ $a -lt 10 ]; then [root@localhost shell]# if [ $a -gt 1 ] && [ $a -lt 10 ]; then echo ok; fi ok
5.2 if [ $b -gt 5 ] || [ $b -lt 3 ]; then [root@localhost shell]# if [ $a -gt 7 ] || [ $a -lt 10 ]; then echo ok; fi ok
其他:
[root@localhost ~]# for i in seq 1 5
;do echo $i;done
1
2
3
4
5