您的位置:首页 > 运维架构 > Shell

shell判断文件是否存在

2015-04-20 09:29 381 查看
#!/bin/sh

myFile="/var /log/httpd/access.log"
if [ ! -e "$myFile" ]; then
touch "$myFile"
fi

-e和-f的区别是,-f代表常规文件(regular file),-e代表所有任何类型文件

参考如下:

-e filename 如果 filename存在,则为真
-d filename 如果 filename为目录,则为真
-f filename 如果 filename为常规文件,则为真
-L filename 如果 filename为符号链接,则为真
-r filename 如果 filename可读,则为真
-w filename 如果 filename可写,则为真
-x filename 如果 filename可执行,则为真
-s filename 如果文件长度不为0,则为真
-h filename 如果文件是软链接,则为真
4. myPath="/var/log/httpd/"5. myFile="/var /log/httpd/access.log"6.7. # 这里的-x 参数判断$myPath是否存在并且是否具有可执行权限8. if [ ! -x "$myPath"]; then9. mkdir "$myPath"10. fi11.12. # 这里的-d 参数判断$myPath是否存在13. if [ ! -d "$myPath"]; then14. mkdir "$myPath"15. fi16.17. # 这里的-f参数判断$myFile是否存在18. if [ ! -f "$myFile" ]; then19. touch "$myFile"20. fi21.22. # 其他参数还有-n,-n是判断一个变量是否是否有值23. if [ ! -n "$myVar" ]; then24. echo "$myVar is empty"25. exit 026. fi27.28. # 两个变量判断是否相等29. if [ "$var1" = "$var2" ]; then30. echo '$var1 eq $var2'31. else32. echo '$var1 not eq $var2'33. fi
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: