if高级用法

1、条件符号使用双圆括号,可以在条件中植入数学表达式 if (())

1
2
3
4
5
6
7
8
#!/bin/bash

if (( (5+5-5)*5/5 > 10 ))
then
echo "yes"
else
echo "no"
fi

2、使用双方括号,可以在条件中使用通配符

通过代码看下 ,为字符串提供高级功能,模式匹配 r* 匹配r开头的字符串

1
2
3
4
5
6
7
8
9
#!/bin/bash

for var in ab ac rx bx rvv vt
do
if [[ "$var" == r* ]]
then
echo "$var"
fi
done

简写if

省去了关键字,条件为真采用&&符号链接命令块,条件为假采用||链接命令块

简写if一般用在简单的判断中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
if [ ! -d /tmp/baism ]
then
mkdir /tmp/baism
fi

#可以简写为

[ ! -d /tmp/baism ] && mkdir /tmp/baism

if [ $USER == 'root' ]
then
echo "hello root"
else
echo "hello guest"
fi

#可以简写
[ $USER == 'root' ]&&echo "hello root" || echo "hello guest"