1. text测试语句
shell环境中测试条件表达式工具text的使用方法:
test 条件1 [选项] 条件2
[ 条件1 [选项] 条件2 ]
选项:
-a:两个条件都为真
-o:两个条件有一个为真
=:字符串是否相等,若相等返回true
!=:字符串是否不等,若不等返回true
test [选项] 变量
[ [选项] 变量 ]
选项:
-n:字符串的长度非零
-z:字符串的长度是否为零
test file1 [选项] file2
[ file1 [选项] file2]
选项:
-ef:两个文件是否为同一个文件,可用于硬连接。主要判断两个文件是否指向同一个inode(节点)。
-nt:判断文件1是否比文件2新
-ot:判断文件1比是否文件2旧
test [选项] file
[ [选项] file ]
选项:
-b:文件是否块设备文件
-c:文件并且是字符设备文件
-d:文件并且是目录
-e:文件是否存在*
-f:文件是否为正规文件*
-L: 文件是否是一个符号链接(同-h)
这里的test和符号[ ]的作用是一样的,[ ]与内容之间一定要有空格。。
1.1 -a与-o
使用-a
选项,两个条件同时成立,输出yes,反之为no。
由此可以测试得-a选项,必须两个条件都为真,结果才为真。
使用-o
选项,两个条件中只要有一个选项成立,输出结果就为yes,反之为no。
1.2 -n与-z
两者的作用刚好是相反的:
- -n:如果变量有值则为yes,变量为空为no(判断是否有值)
- -z:如果变量有值则为no,变量为空为yes(判断是否没有值)
1.3 =、!=
=:字符串是否相等,若相等返回true
!=:字符串是否不等,若不等返回true
1.4 -ef、-nt与-ot
两个文件是否为同一个文件,可用于硬连接。主要判断两个文件是否指向同一个i节点,同一个i节点表示对应同一个盘符。
-nt判断文件1是否比文件2新(new)
-ot判断文件1比是否文件2旧(old)
1.5 -b,-c,-d,-e,-f,-L
test [选项] file
[ [选项] file