shell多重判断
[[email protected] 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
[[email protected] shell]# bash -x if03.sh
- a=4
- (( 4<1 ))
- (( 4>1 ))
- echo '>1'
1
[[email protected] 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
[[email protected] 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
[[email protected] shell]# if [ $a -gt 1 ] && [ $a -lt 10 ]; then echo ok; fi
ok
5.2 if [ $b -gt 5 ] || [ $b -lt 3 ]; then
[[email protected] shell]# if [ $a -gt 7 ] || [ $a -lt 10 ]; then echo ok; fi
ok
其他:
[[email protected] ~]# for i in seq 1 5
;do echo $i;done
1
2
3
4
5
本文转自 虾米的春天 51CTO博客,原文链接:http://blog.51cto.com/lsxme/2058287,如需转载请自行联系原作者