我正在创建这个包含文件夹路径的bashs脚本,作为参数传递。
如果它检测到paramter是一个目录,那么它将它用作脚本工作的路径。
但由于某种原因,它拒绝将此文件夹路径视为目录。
让我迷惑不解。
这是一个已安装的外置3tb硬盘,工作正常,没有问题,无论如何。
但安装为/ media / wdmybook /
我有这个测试脚本来帮助我调试和识别问题。
#!/bin/bash
DIR="/media/wdmybook/folder"
if grep -qs '$DIR' /proc/mounts; then
echo "It's mounted."
else
echo "It's not mounted."
fi
if [ ! -d "$DIR" ]; then
echo "Directory does not exist!"
elif [ "$DIR" != -d ]; then
echo "Not a Directory"
else
echo "Path is okay"
fi
但每次我运行它时,它都会将路径检测为无效目录,并且未安装。
那么我错过了什么或没有看到什么?
这是权限问题吗?
我在Debian Wheezy XFCE上运行它。
答案 0 :(得分:1)
您应该将if条件重写为:
if [ ! -e "$DIR" ]; then
echo "Directory does not exist!"
elif [ ! -d "$DIR" ]; then
echo "Not a Directory"
else
echo "Path is okay"
fi
有关详细信息,请参阅man test