我如何在bash中检查和创建目录

时间:2013-10-08 04:36:26

标签: linux bash

所以,我要检查目录是否存在,如果没有,那么脚本将创建一个。这是代码:

APPLICATION_DATA_DIRECTORY="~/.directorychecker/"
APPLICATION_DATA_DIRECTORY_CREATE="~/.directorychecker/"
CHECK_APPLICATION_DATA_DIRECTORY()
{
    if [ -d "$APPLICATION_DATA_DIRECTORY" ]
    then
    echo "directory exists"
    else
    mkdir $APPLICATION_DATA_DIRECTORY_CREATE
    echo "directory is NOT exist, but now created"
    fi
} 

CHECK_APPLICATION_DATA_DIRECTORY

但是,当文件夹检查机制顺利运行时,文件夹创建机制不希望运行并返回

mkdir: cannot create directory `~/.directorychecker/': No such file or directory

我真的不知道如何让它工作,因为脚本似乎很好

这里有人有同样的问题和解决方案吗?任何答案将不胜感激

由于

1 个答案:

答案 0 :(得分:3)

应该是

 APPLICATION_DATA_DIRECTORY="$HOME/.directorychecker/"

等...

否则,您正在创建一个名称以~开头的目录,这是一件坏事。您使用~作为字符串的第一个字符的行不会扩展为$HOME

BTW,将(暂时,用于调试目的)#!/bin/bash -xv作为脚本的第一行可以帮助您找到该错误。