我正在尝试测试文件传递给我的脚本时是否存在目录路径。我使用dirname去除并保存路径。我希望我的脚本只在路径存在时运行。这是我的尝试。
FILE = $ 1
DIRNAME = dirname $FILE
if [-z $ DIRNAME];然后 echo“错误没有文件路径” 退出1 网络
但这不起作用。当没有文件路径时dirname $FILE
仍然返回“。”到DIRNAME,即这个目录。那么我如何区分“。”和“/ bla / bla / bla”。
感谢。
答案 0 :(得分:0)
为什么不使用
if [ -a $1] ; then echo "found file"; fi
答案 1 :(得分:0)
您确定dirname正在检查文件系统是否存在?你在用什么操作系统?我相信,大多数dirnames只是做字符串操作。所以这个:
dirname /one/two/three
即使/一个不存在,也返回/一/二。
也许这就是你要找的东西:
FILE=$1
DIRNAME=`dirname "$FILE"`
if [ ! -d "$DIRNAME" ]; then
echo "$DIRNAME doesn't exist" >&2
exit 1
fi