如何检查Shell脚本中是否存在目录
时间:2020-01-09 10:40:04 来源:igfitidea点击:
如何检查Linux或Unix等操作系统下的Shell脚本中是否存在目录?
如何检查类Unix系统上的Shell脚本中是否存在目录?
要检查目录是否存在于shell脚本中并且是目录,请使用以下语法:
`[ -d "/path/to/dir" ] && echo "Directory /path/to/dir exists."`
或者
`[ ! -d "/path/to/dir" ] && echo "Directory /path/to/dir DOES NOT exists."`
或将它们一次性合并:
`[ -d "/path/to/dir" ] && echo "Directory /path/to/dir exists." || echo "Error: Directory /path/to/dir does not exists."`
以下版本还检查符号链接:
`[ -d "/path/to/dir" && ! -L "/path/to/dir" ] && echo "Directory /path/to/dir exists." || echo "Error: Directory /path/to/dir exists but point to $(readlink -f /path/to/dir)."`
或者
`[ -d "/path/to/dir" && ! -h "/path/to/dir" ] && echo "Directory /path/to/dir exists." || echo "Error: Directory /path/to/dir exists but point to $(readlink -f /path/to/dir)."`
最后,您可以使用传统的if..else..fi bash语法,如下所示:
if [ -d "/path/to/dir" ] then echo "Directory /path/to/dir exists." else echo "Error: Directory /path/to/dir does not exists." fi
或者
### Check if a directory does not exist ### if [ ! -d "/path/to/dir" ] then echo "Directory /path/to/dir DOES NOT exists." exit 9999 # die with error code 9999 fi
总结
使用以下命令检查文件/目录类型并比较值:
-L" FILE"
:FILE存在并且是一个符号链接(与-h相同)-h" FILE"
:FILE存在并且是一个符号链接(与-L相同)-d" FILE"
:FILE存在并且是一个目录-w" FILE"
:文件存在并被授予写权限