您的位置:首页 > 业界新闻

运营互联网产品之瘸子走路和瞎子走路

2010-09-06 09:08 435 查看
1. shell判断文件,目录是否存在或者具有权限
2. #!/bin/sh
3.
4. myPath="/var/log/httpd/"
5. myFile="/var /log/httpd/access.log"
6.
7. # 这里的-x 参数判断$myPath是否存在并且是否具有可执行权限
8. if [ ! -x "$myPath"]; then
9. mkdir "$myPath"
10. fi
11.
12. # 这里的-d 参数判断$myPath是否存在
13. if [ ! -d "$myPath"]; then
14. mkdir "$myPath"
15. fi
16.
17. # 这里的-f参数判断$myFile是否存在
18. if [ ! -f "$myFile" ]; then
19. touch "$myFile"
20. fi
21.
22. # 其他参数还有-n,-n是判断一个变量是否是否有值
23. if [ ! -n "$myVar" ]; then
24. echo "$myVar is empty"
25. exit 0
26. fi
27.
28. # 两个变量判断是否相等
29. if [ "$var1" = "$var2" ]; then
30. echo '$var1 eq $var2'
31. else
32. echo '$var1 not eq $var2'
33. fi

-f 和-e的区别
Conditional Logic on Files

-a file exists. 文件存在
-b file exists and is a block special file. 文件存在且是一个块特殊文件。
-c file exists and is a character special file. 文件存在且是一个字特殊文件。
-d file exists and is a directory. 文件存在且是一个目录。
-e file exists (just the same as -a). 文件存在(只是同-a)。
-f file exists and is a regular file. 文件存在且是一个普通文件。
-g file exists and has its setgid(2) bit set. 文件存在并有其setgid的(2)位设置。
-G file exists and has the same group ID as this process. 文件存在,并且具有相同的组ID作为这个过程。
-k file exists and has its sticky bit set. 文件存在,并且有粘性位设置。
-L file exists and is a symbolic link. 文件存在且是一个符号链接。
-n string length is not zero. 串长度不为零。
-o Named option is set on. 命名选项设置上。
-O file exists and is owned by the user ID of this process. 文件存在并通过这个过程的用户ID拥有。
-p file exists and is a first in, first out (FIFO) special file or
named pipe. 文件存在并且是先入先出(FIFO)特殊文件或命名管道。
-r file exists and is readable by the current process. 文件存在,并且是当前进程可读。
-s file exists and has a size greater than zero. 文件存在,并且有一个大小大于零。
-S file exists and is a socket. 文件存在且是一个套接字。
-t file descriptor number fildes is open and associated with a
terminal device. 文件描述符的fildes是开放的,与关联终端设备。
-u file exists and has its setuid(2) bit set. 文件存在并有其的setuid(2)位设置。
-w file exists and is writable by the current process. 文件存在并且是可写的当前进程。
-x file exists and is executable by the current process. 文件存在,并且是当前进程的可执行文件。
-z string length is zero. 字符串长度为零。

是用 -s 还是用 -f 这个区别是很大的!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: