因仑“3+1”工程特种兵精英论坛

标题: Shell运算符:Shell文件测试运算符详解 [打印本页]

作者: lucky80204    时间: 2014-8-10 09:18
标题: Shell运算符:Shell文件测试运算符详解
文件测试运算符文件测试运算符用于检测 Unix 文件的各种属性。

例如,变量 file 表示文件“/var/www/tutorialspoint/unix/test.sh”,它的大小为100字节,具有 rwx 权限。下面的代码,将检测该文件的各种属性:
  1. #!/bin/sh
  2. file="/var/www/tutorialspoint/unix/test.sh"
  3. if [ -r $file ]
  4. then
  5.    echo "File has read access"
  6. else
  7.    echo "File does not have read access"
  8. fi
  9. if [ -w $file ]
  10. then
  11.    echo "File has write permission"
  12. else
  13.    echo "File does not have write permission"
  14. fi
  15. if [ -x $file ]
  16. then
  17.    echo "File has execute permission"
  18. else
  19.    echo "File does not have execute permission"
  20. fi
  21. if [ -f $file ]
  22. then
  23.    echo "File is an ordinary file"
  24. else
  25.    echo "This is sepcial file"
  26. fi
  27. if [ -d $file ]
  28. then
  29.    echo "File is a directory"
  30. else
  31.    echo "This is not a directory"
  32. fi
  33. if [ -s $file ]
  34. then
  35.    echo "File size is zero"
  36. else
  37.    echo "File size is not zero"
  38. fi
  39. if [ -e $file ]
  40. then
  41.    echo "File exists"
  42. else
  43.    echo "File does not exist"
  44. fi
复制代码




运行结果:
  1. File has read access
  2. File has write permission
  3. File has execute permission
  4. File is an ordinary file
  5. This is not a directory
  6. File size is zero
  7. File exists
复制代码

文件测试运算符列表
                                                        
  
操作符
  
说明
举例
-b  file
检测文件是否是块设备文件,如果是,则返回  true。
[ -b  $file ] 返回 false。
-c  file
检测文件是否是字符设备文件,如果是,则返回  true。
[ -b  $file ] 返回 false。
-d  file
检测文件是否是目录,如果是,则返回  true。
[ -d  $file ] 返回 false。
-f  file
检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回 true。
[ -f  $file ] 返回 true。
-g  file
检测文件是否设置了 SGID 位,如果是,则返回 true。
[ -g  $file ] 返回 false。
-k  file
检测文件是否设置了粘着位(Sticky Bit),如果是,则返回 true。
[ -k  $file ] 返回 false。
-p  file
检测文件是否是具名管道,如果是,则返回  true。
[ -p  $file ] 返回 false。
-u  file
检测文件是否设置了 SUID 位,如果是,则返回 true。
[ -u  $file ] 返回 false。
-r  file
检测文件是否可读,如果是,则返回  true。
[ -r  $file ] 返回 true。
-w  file
检测文件是否可写,如果是,则返回  true。
[ -w  $file ] 返回 true。
-x  file
检测文件是否可执行,如果是,则返回  true。
[ -x  $file ] 返回 true。
-s  file
检测文件是否为空(文件大小是否大于0),不为空返回 true。
[ -s  $file ] 返回 true。
-e  file
检测文件(包括目录)是否存在,如果是,则返回  true。
[ -e  $file ] 返回 true。




作者: 墨奚    时间: 2014-8-10 14:14
没用过。。。。




欢迎光临 因仑“3+1”工程特种兵精英论坛 (http://bbs.enlern.com/) Powered by Discuz! X3.4