一、复合条件判断
使用"&&"和"||"可以实现多个条件的合并检查:
[ condition1 ] && [condition2] condition1 condition2必须两个判断都成立时,整个条件才会为真
三、使用双方括号表示字符串模式匹配
[[ expression ]]
"[[ ]]"包围的expression与test命令中使用的标准字符串比较,但是它提供了test命令没有的模式匹配功能。
使用"&&"和"||"可以实现多个条件的合并检查:
[ condition1 ] && [condition2] condition1 condition2必须两个判断都成立时,整个条件才会为真
[ condition1 ] || [condition2] condition1 condition2只要有一个判断成立时,整个条件就为真
$ cat test.sh
#!/bin/bash
if [ 1 -le 2 ] && [ -d /root ]
then
echo "两个条件都成立"
else
echo "两个条件不同时成立"
fi
$ ./test.sh
两个条件都成立
二、双圆括号比较数学表达式
双圆括号命令允许在比较中包含高级数学公式,是对test命令算术操作的增强。格式为:
(( expression ))
expression为数学表达式,expression中可以使用的操作符如下:
$ cat test.sh
#!/bin/bash
a=10
if (($a**2 > 90))
then
echo "a的平方大于90"
((b=$a*2))
fi
echo "b的值为:$b"
$ ./test.sh
a的平方大于90
b的值为:20
注意:
在(( ))中不用转义">"号,这是双圆括号提供的一个高级特性。
三、使用双方括号表示字符串模式匹配
[[ expression ]]
"[[ ]]"包围的expression与test命令中使用的标准字符串比较,但是它提供了test命令没有的模式匹配功能。
$ cat test.sh
#!/bin/bash
apple="apple"
app="app"
if [[ $apple==app* ]]
then
echo "$apple match app*"
fi
if [[ $app==app* ]]
then
echo "$app match app*"
fi
$ ./test.sh
apple match app*
app match app*