Bash将安装的文件夹检测为目录

时间:2014-11-15 22:46:13

标签: linux bash

我正在创建这个包含文件夹路径的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上运行它。

1 个答案:

答案 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