目录
- 文件状态的测试
- 字符串的比较
- 正数值的比较
- 逻辑测试
- 高级表达式
1.整数高级表达式
2.字符串高级表达式
正文
文件状态测试表达式
表达式格式
- [ 操作符 文件或目录 ]:中括号的表达式必须两边都有一个空格。
命令操作符
- -d:测试是否为目录,是为真。
- -e:测试目录或文件是否存在,存在为真。
- -f:测试是否为文件,是则为真。
- -r:当前用户是否有读取权限,是则为真。
- -w:测试当前用户是否有权限写入,是ze为真。
- -x:测试当前用户是否可执行该文件,可执行则为真。
- -L:测试是否为符号链接文件,是则为真。
- -nt:file1 -nt file2 如果 file1 比 file2 新(修改时间),则为真。
- -ot:file1 -ot file2 如果 file1 比 file2 旧(修改时间),则为真。
字符串条件表达式
表达式格式
[ 字符串 操作符 字符串 ]:中括号的表达式必须两边都有一个空格。
操作符
- =或==:字符串内容相同则为真,就是说包含的文本一摸一样。
- !=:字符串内容不同,则为真(!号表示相反的意思)。
- -z:字符串内容为空(长度为零)则为真。
- -n:字符串内容非空(长度非零)则为真。
- <:string1 < string2, 如果string1在本地的字典序列中排在string2之前,则为真。
- <:string1 > string2, 如果string1在本地的字典序列中排在string2之后,则为真。
注意点
1.字符串的 “等于” 比较,为了与
POSIX 一致,在[]
中使用=
,(尽管==
也可以可以用的)。
2.注意在=
前后各有一个空格,如果没有空格就是赋值的关系,不是比较的关系。
3.字符串的> <
比较运算符,一般放在[[ ]]
之中,而不是test ("[]")
。
4.字符串的> <
比较的结果,与本地的locale有关,是按照其字典序列进行比较的。
整数值表达式
格式
[ 整数 操作符 整数 ]
操作符
- -eq:等于(equal)。
- -ne:不等于(not equal)。
- -gt:大于(Greater than)。
- -lt:小于(lesser than)。
- -le:小于等于(lesser or equal)。
- -ge:大于等于(Greater or equal)。
注意点
1.以上运算符也适用字符串,字符串的 =、==、!=、<、>适用与整数。
逻辑表达式
格式
[ 表达式1 ] 操作符 [ 表达式2 ]
操作符
- -a 或 && :逻辑与,“而且”的意思,前后两个表达式都成立时整个测试结果才为真,否则为假。
- -o 或 || : 逻辑或,“或者”的意思,操作符两边至少一个为真时,结果为真,否为为假。
- ! :逻辑否,当制定条件不成立时,返回结果为真。
高级表达式
1.整数高级表达式###
格式
( ( 表达式 ) ):两个括号之间必须有一个空格,表达式与括号之间必须也有一个空格。
操作符
- 变量++:自增运算。
- 变量--:自减运算。
网友评论