文件测试是指测试某一个文件或者目录是否存在
测试文件格式[ 操作符 目录或者文件 ] 注意左括号和操作符之间有一个空格,文件或者目录 与右边的括号之间也有一个空格。
-d | 测试是否为目录 |
-e | 测试文件或者目录是否存在 |
-f | 测试是否为文件 |
-r | 测试当前用户是否对文件有读权限 |
-w | 测试当前用户是否对文件有写权限 |
-x | 测试当前用户是否对文件有执行权限 |
-L | 测试是否为符号链接文件 |
测试的结果可以使用$?来获取,$?表示上一条命令的执行是否成功 或者 判断条件是否成立: 如果运行成功则返回0,如果出现异常或者失败时,返回非0值。于是就可以$?来判断文件测试是否成功了。
实例:
#!/bin/bash #文件名:test.sh [ -d /etc ] echo $? [ -f /etc ] echo $? [ -f test.sh ] echo $? [ -x test.sh ] echo $?
运行结果:
ubuntu@ubuntu:~$ ./test.sh 0 1 0 0 ubuntu@ubuntu:~$
强化:
#!/bin/bash #文件名:test.sh [ -d /etc ] && echo "one" [ -f /etc ] && echo "two" [ -f test.sh ] && echo "three" [ -x test.sh ] && echo "four"
运行:
ubuntu@ubuntu:~$ ./test.sh one three four ubuntu@ubuntu:~$