检查目录是否存在始终返回false

时间:2017-09-20 06:10:19

标签: bash unix

我对unix环境很新,所以我必须忽略一些基本的东西...以下应该生成一个目录,只有它不存在。我将它用作生成多个目录的例程。

无论我将相同的参数传递给脚本多少次,它总是最终创建文件夹。我想阻止脚本覆盖现有文件夹。我尝试了各种各样的检查,也使用“!”尝试相反的形式。

for seqCall in "$@"; do
    IFS='_' read -ra args <<< "$seqCall"
    ss=${args[0]}
    hq=${args[1]}
    ri=${args[2]}
    cd ~
    echo " *** creating folder for SS$ss, with HQ$hq, and runID $ri ***"
    # check if directory to be created already exists. if so, add message and skip
    if [[ -d "${Daten/Runs/SS${ss}_HQ${hq}_r${ri}}" ]] ; then
        echo " ACHTUNG: Runordner SS${ss}_HQ${hq}_r${ri} existiert bereits. Überspringe Neuerstellung. "
    else
        cd Daten/Runs/SS${ss}
        cp -r ../MASTER/SSX_SCEN_rX SS${ss}_HQ${hq}_r${ri}
        chmod -R 777 SS${ss}_HQ${hq}_r${ri}
        echo " Folder created..."
        cd ~
    fi
done

1 个答案:

答案 0 :(得分:1)

如上所述,在没有外部$ {}的情况下运行它。 此外,使用它运行应该在屏幕上显示1.001消息。