编程语言中都有条件判断,shell编程也不例外,下面我们来看一下shell中应该怎么使用if条件判断
以下蓝色字体部分为Linux命令,红色字体的内容为输出的内容:
# cd /opt/scripts
# vim script07.sh
开始编写script07.sh的脚本,脚本内容为:
#! /bin/sh if [ 3 -gt 2 ] then echo "3>2" fi if [ 3 -lt 2 ] then echo "3<2" else echo "3>2" fi
上面的代码,注意if后面跟的条件是用中括号括起来的,注意括号和判断条件中间要有空格,不然会报错。
还要注意关键字部分都需要新起行,不然也会报错。
条件的结束关键字比较特殊,用的是fi,刚好是把if反过来写。
关系运算符中-gt是指大于,-lt是指小于,下面是关系运算符的列表:
运算符 | 说明 | 举例 |
---|---|---|
-eq | 检测两个数是否相等,相等返回 true。 | [ $a -eq $b ] 返回 false。 |
-ne | 检测两个数是否不相等,不相等返回 true。 | [ $a -ne $b ] 返回 true。 |
-gt | 检测左边的数是否大于右边的,如果是,则返回 true。 | [ $a -gt $b ] 返回 false。 |
-lt | 检测左边的数是否小于右边的,如果是,则返回 true。 | [ $a -lt $b ] 返回 true。 |
-ge | 检测左边的数是否大于等于右边的,如果是,则返回 true。 | [ $a -ge $b ] 返回 false。 |
-le | 检测左边的数是否小于等于右边的,如果是,则返回 true。 | [ $a -le $b ] 返回 true。 |
开始执行这个脚本:
# chmod +x script07.sh
# ./script07.sh
3>2
3>2
上面的代码,也经常会这么写:
#! /bin/sh if [ 3 -gt 2 ]; then echo "3>2" fi if [ 3 -lt 2 ]; then echo "3<2" else echo "3>2" fi
这两段代码的区别就是第二段代码会把if和then放到一行,分号是用来隔断每个语法关键字或命令的,所以如果想把then关键字放到if同一行,就需要在then前添加分号
两段代码功能一样,我这里主要是演示一下分号的使用。