2013-10-08 59 views
0

因此,我將檢查一個目錄是否存在,如果不存在,那麼該腳本將創建一個目錄。這裏是代碼:我該如何檢查並在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

你是「檢查目錄」就好了。問題在於代字號。解決方案是替換'$ {HOME}'。請確保「upvote」並接受Basile Starynkevitch的回答。 – paulsm4

回答

3

應該

APPLICATION_DATA_DIRECTORY="$HOME/.directorychecker/" 

等等

否則,你正在創建一個目錄,它的名字開始與~這是一件壞事。您使用的~作爲一個字符串的第一個字符不會擴展到$HOME

BTW,將(暫時用於調試目的)#!/bin/bash -xv作爲腳本的第一行會幫助你發現的bug。

+0

它像一個魅力,謝謝 – user1072976

相關問題