我目前有一个字符串目录,如下所示:
DESTDIR="/var/files/mydir/filedir/"
请注意,该目录确实存在。我确定了这一点。
我需要检查该目录是否已存在,或者是否需要创建它。我目前正在使用以下方法执行此操作:
if [ -d $DESTDIR ]; then
echo the directory exists!
else
echo the directory does not exist!
fi
而且,即使该目录确实存在 - 我将名称复制并粘贴到脚本中的变量中 - 它始终会转到该else
语句。不仅如此,当我ls $DESTDIR
在脚本中执行此操作时,我会收到no such file or directory
错误。但是,当我ls $DESTDIR
从命令行运行时,我得到了预期的结果。
我尝试过替换$DESTDIR
为"$DESTDIR"
,但仍然没有得到预期的结果。
答案1
你可以这样做mkdir -p "$DESTDIR"
——-p
如果错误已经存在,该选项将抑制错误。
答案2
从这里看起来$DESTDIR
(又名/var/files/mydir/file)实际上是/file/而不是/directory/。该-d
测试询问您是否有 /directory/。检查输出ls -ld $DESTDIR
以确认。如果$DESTDIR
确实是一个文件,那么-d
测试正在做正确的事情——只是不是你所期望的。