条件测试 - pingdongyi/blog-2 GitHub Wiki
test condition
#或
[ condition ]
使用方括号时,要注意在条件两边加上空格。
测试状态:
符号 | 释义 |
---|---|
-d | 是否是目录 |
-f | 是否是文件 |
-L | 是否是符号连接 |
-r | 是否可读 |
-s | 是否非空文件长度大于0 |
-w | 是否可写 |
-u | 是否文件有suid位设置 |
-x | 是否可执行 |
$test -w test.txt
$[ -w test.txt ]
$echo $?
0
符号 | 释义 |
---|---|
-a | 逻辑与 |
-o | 逻辑或 |
! | 逻辑否 |
[ -w test.txt -a -x test.txt ]
[ -w test.txt -o -x test.txt ]
test "string"
test "string1" operator "string2"
[ operator "string" ]
[ "string1" operator "string2" ]
符号 | 释义 |
---|---|
= | 两字符串相等 |
!= | 不相等 |
-z | 空串 |
-n | 非空串 |
[ $name = 'bill' ]
[ -z $name ]
test "num1" operator "num2"
[ "num1" operator "num2" ]
符号 | 释义 |
---|---|
-eq | 数值相等 |
-ne | 数值不相等 |
-gt | 第一个数大于第二个数 |
-lt | 第一个数小于第二个数 |
-le | 第一个数小于等于第二个数 |
-ge | 第一个数大于等于第二个数 |
[ $num -eq "30" ]
[ "30" -lt "40" ]
expr命令一般用于算术操作:
expr param1 operator param2
例如:
$expr 30 / 3
10
num = 1
num = `expr $num + 1`
##模式匹配
$value=accouts.doc
$expr $value : '\(.*\).doc'
accounts