linux shell if else 语句判断与参数
Path="/Path"
File="/Path/file.log"
# 这里的-x 参数判断$myPath是否存在而且是否具备可执行权限
if [ ! -x "$Path"]; then
mkdir "$Path"
fi
# 这里的-d 参数判断$myPath是否存在
if [ ! -d "$Path"]; then
mkdir "$Path"
fi
# 这里的-f参数判断$File是否存在
if [ ! -f "$File" ]; then
touch "$File"
fi
# 其余参数还有-n,-n是判断一个变量是不是否有值
if [ ! -n "$var" ]; then
echo "$var is empty"
exit 0
fi
# 两个变量判断是否相等
if [ "$var1" = "$var2" ]; then
echo '$var1 eq $var2'
else
echo '$var1 not eq $var2'
fi
-a
文件存在
-b
文件存在而且是块特殊文件。
-c
文件存在,是一个字符特殊文件。
-d
文件存在而且是一个目录。
-e
文件存在(与-a相同)。
-f
文件存在且是常规文件。
-g
文件存在并设置了setgid(2)位。
-G
文件存在且与此进程具备相同的组ID。
-k
文件存在并设置了粘滞位。
-L
文件存在而且是符号连接。
-n
字符串长度不为零。
-o
已设置命名选项。
-O
文件存在并由此进程的用户标识拥有。
-p
文件存在,是先进先出(FIFO)特殊文件或命名管道。
-r
文件存在且可由当前进程读取。
-s
文件存在且大小大于零。
-S
文件存在且是一个套接字。
-t
文件描述符号fildes已打开并与终端设备相关联。
-u
文件存在并设置了setuid(2)位。
-w
文件存在且可由当前进程写入。
-x
文件存在且可由当前进程执行。
-z
字符串长度为零。
-nt
判断file1是否比file2新 [ "/data/file1" -nt "/data/file2"]
-ot
判断file1是否比file2旧 [ "/data/file1" -ot "/data/file2"]