test命令,,测试字符串,文件状态,数字等是否符合我们的需要。test命令适用于对文件、字符串、数字的检测。对于测试输出结果,可以使用$?检测,0表示返回正确,1表示返回错误。
test命令格式:test condition 或[ condition ]
一、下面是测试文件的状态表——————————d目录-f正规文件-L符号链接-r可读-s文件长度大于0、非空-w可写-u文件有suid位设置-x可执行—————————–
检查文件week.txt,是否可写,和执行。ls -l week.txt-rw-r–r– 1 b4nx group 94 Dec 11 10:14 week.txt1.检查是否具有写的权限:[ -w week.txt ] 或 test -w week.txtecho $?0
2.检查是否具有可执行权限:[ -x week.txt ] 或 test -x week.txtecho $?1文件不可执行。
3.检查可读权限:test -r iplist.txtecho $?0
4.检查文件是否为空:ls -l file.null-rw-r–r– 1 b4nx group 0 Dec 28 08:38 file.nulltest -s file.nullecho $?11表示否,文件为空或长度为0
5.检查文件是否为连接文件:ln ../awk/data.f ldatals -l data.f-rw-r–r– 2 b4nx group 356 Nov 16 19:50 data.f创建的是link文件,怎么这里显示的是普通文件呢?原来创建文件时少写了参数:-srm -r ldataln -s ../awk/data.f ldatals -l ldatalrwxrwxrwx 1 b4nx group 13 Dec 28 08:58 ldata -> ../awk/data.f查看是否为link文件:[ -L ldata ]echo $?0week.txt文件未普通文件,所以检查是返回1:test -L week.txtecho $?1ls -l week.txt-rw-r–r– 1 b4nx group 94 Dec 11 10:14 week.txt
6.检测目录[ -d other ]echo $?0cd otherpwd***/other
使用逻辑操作符-a:逻辑与,一假则假-o:逻辑或,一真则真1.查看2个文件是否都可写[ -w video.txt -a -w video2.txt ]echo $?0ls -l video*-rw-r–r– 1 b4nx group 195 Dec 10 18:47 video.txt-rw-r–r– 1 b4nx group 195 Dec 11 09:02 video2.txt查看2个文件是否都为link文件:[ -L video.txt -o -L video2.txt ]echo $?1
只要你扬帆,便会有八面来风。启程了,人的生命才真正开始。