[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
  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 [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