shell脚本中的逻辑判断

  • 格式1:if 条件 ; then 语句; fi 命令行写法1:
[root@lijie-01 ~]# a=5
[root@lijie-01 ~]# if [ $a -gt 3 ]   //这里的$a表示取a的值,gt是great than表示大于的意思,小于用lt表示,即less than
> then
> echo ok
> fi
ok
[root@lijie-01 ~]#

命令行写法2:

[root@lijie-01 ~]# a=5
[root@lijie-01 ~]# if [ $a -gt 3 ]; then echo ok; fi
ok
[root@lijie-01 ~]#

脚本写法3(这种写法是以后常用的):

[root@lijie-01 ~]# cat ifi.sh
#!/bin/bash
a=5
if [ $a -gt 3 ]
then
  echo ok
fi
[root@lijie-01 ~]# sh ifi.sh
ok
  • 格式2:if 条件; then 语句; else 语句; fi
[root@lijie-01 ~]# cat ifi2.sh  
#!/bin/bash
a=1
if [ $a -gt 3 ]
then
  echo ok
else
  echo nook
fi
[root@lijie-01 ~]# sh ifi2.sh
nook
  • 格式3:if …; then … ;elif …; then …; else …; fi
    我们写如下一个脚本
[root@lijie-01 ~]# cat ifi2.sh
#!/bin/bash
a=1
if [ $a -gt 3 ]
then
  echo ok
else
  echo nook
fi
[root@lijie-01 ~]# 

查看执行过程
输入图片说明

  • 逻辑判断表达式:if [ $a -gt $b ]; if [ $a -lt 5 ]; if [ $b -eq 10 ]等 -gt (>); -lt(<); -ge(>=); -le(<=);-eq(==); -ne(!=) 注意到处都是空格
    gt 表示大于 great than
    lt 表示小于 less than
    eq 表示等于 equal
    ne 表示不等于no equal
    上面我们使用的是gt lt eq等字符来表示大于、小于,等于;其实我们也可以使用> < = >=来表示,只不过需要用两层括号,如下:
[root@lijie-01 ~]# a=5
[root@lijie-01 ~]# if (($a>1));then echo ok; fi 
ok
[root@lijie-01 ~]# 
  • 可以使用 && || 结合多个条件
  • if [ $a -gt 5 ] && [ $a -lt 10 ]; then
  • if [ $b -gt 5 ] || [ $b -lt 3 ]; then

猜你喜欢

转载自my.oschina.net/u/3746774/blog/1797585