1、语法格式
可以使用test或者[来进行[条件判断,下面的两个代码片段是等价的:
if test -f file.c
then
....
fi
或者:
if [ -f file.c ]
then
...
fi
上述代码片段的意义为:file.c是普通文件则执行then与fi之间的代码,可取反为:
if [ ! -f file.c ]
then
...
fi
上述代码的意义是:如果file.不是普通文件则执行then与fi之间的代码。
多个条件判断时候,要用多个[]对,不能将所有条件都放在一对[]中:
if [ -f file.c ] && [ ! -L file.c ]
then
...
fi
2、字符串比较
总结字符串比较测试如下:
string1 = string2 —— 如果两个字符串相同则结果为真
string1 != string2 —— 如果两个字符串结果不同则结果为真
-n string —— 如果字符串不为空则结果为真
-z string —— 如果字符串为空(null)则结果为真
3、算术比较
总结算术比较测试如下:
expresion1 -eq expression2 —— 如果两个表达式结果相等则结果为真
expresion1 -ne expression2 —— 如果两个表达式结果不相等则结果为真
expresion1 -gt expression2 —— 如果expression1大于expression2则结果为真
expresion1 -ge expression2 —— 如果expression1大等于expression2则结果为真
expresion1 -lt expression2 —— 如果expression1 小于expression2则结果为真
expresion1 -le expression2 —— 如果expression1小等于expression2则结果为真
! expression
4、文件条件测试
总结文件条件测试如下:
-d file —— 如果文件是一个目录则结果为真
-e file —— 如果文件存在则结果为真
-f file —— 如果文件是一个普通文件(包括软连接文件)则结果为真
-g file —— 如果文件的set-group-id位被设置则结果为真
-L file —— 如果文件为软连接则结果为真
-r file —— 如果文件可读则结果为真
-s file —— 如果文件的大小不为0则结果为真
-u file —— 如果文件的set-user-id位被设置则结果为真
-w file —— 如果文件可写则结果为真
-x file —— 如果文件可执行则结果为真