shell多重判断

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
  1. 逻辑判断表达式:if [ $a -gt $b ]; if [ $a -lt 5 ]; if [ $b -eq 10 ]等 -gt (>); -lt(<); -ge(>=); -le(<=);-eq(==); -ne(!=) 注意到处都是空格
    -gt 大于
    -lt 小于
    -eq 等于
    -ne 不等于
    -ge 大于等于
    -le 小于等于

  2. 可以使用 && || 结合多个条件
    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,如需转载请自行联系原作者