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"]