文章内容
一、参数说明
1 2 3 4 5 6 7 8 9 | -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 如果文件是软链接,则为真 |
其他:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 | -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). -f file exists and is a regular file . -g file exists and has its setgid(2) bit set . -G file exists and has the same group ID as this process. -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. -p file exists and is a first in , first out (FIFO) special file or named pipe. -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. -u file exists and has its setuid(2) bit set . -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. |
二、常用判断示例
1、判断文件夹是否存在
1 2 3 4 5 | #shell判断文件夹是否存在 #如果文件夹不存在,创建文件夹 if [ ! -d "/myfolder" ]; then mkdir /myfolder fi |
2、判断文件夹是否存在并且是否具有可执行权限
1 2 3 4 5 6 7 8 | #shell判断文件,目录是否存在或者具有权限 folder= "/var/www/" file = "/var/www/log" # -x 参数判断 $folder 是否存在并且是否具有可执行权限 if [ ! -x "$folder" ]; then mkdir "$folder" fi |
3、判断文件夹是否存在
1 2 3 4 | # -d 参数判断 $folder 是否存在 if [ ! -d "$folder" ]; then mkdir "$folder" fi |
4、判断文件是否存在
1 2 3 4 | # -f 参数判断 $file 是否存在 if [ ! -f "$file" ]; then touch "$file" fi |
5、判断一个变量是否有值
1 2 3 4 5 | # -n 判断一个变量是否有值 if [ ! -n "$var" ]; then echo "$var is empty" exit 0 fi |
6、判断两个变量是否相等
1 2 3 4 5 6 | # 判断两个变量是否相等 if [ "$var1" = "$var2" ]; then echo '$var1 eq $var2' else echo '$var1 not eq $var2' fi |