2014-11-04 35 views
-1

試圖請檢查是否目錄存在於主目錄檢查閹的目錄存在於主目錄

if [ ! -d "$HOME/Smart_Cycle" ]; then 
    mkdir Smart_Cycle $DIRPATH 
    echo "Creating DIrecroty"" 
fi 

試圖請檢查是否Smart_Cycle目錄中的主目錄存在,如果不存在它會創建目錄。不知道發生了什麼事,或者我是否在正確的軌道上。

運行腳本時我有這兩個錯誤,我以前從來沒有

./smartcycle看出:4號線:意外的EOF而尋找匹配`「」 ./smartcycle:6號線:語法錯誤:文件

+3

這不工作?你是否在意目錄不存在,你需要創建它?因爲如果你不這樣做,那麼'mkdir -p「$ HOME/Smart_Cycle」'可能就是你想要的。如果您想要關於它的消息,請添加'-v'。 – 2014-11-04 18:08:17

+0

-p選項在命令中做了什麼,並且將v選項放在-p選項之後? – jmurphy1267 2014-11-04 18:11:18

+0

http://linux.die.net/man/1/mkdir以及任何'mkdir -v -p','mkdir -vp','mkdir -p -v'或'mkdir -pv'都會使用這兩個選項。 – 2014-11-04 18:11:56

回答

0

您對

echo "Creating DIrecroty"" 

一個雙引號試試這個

if [ ! -d "$HOME/Smart_Cycle" ]; then 
    mkdir "$HOME/Smart_Cycle" 
    echo "Creating DIrecroty" 
fi 

您可以創建多個目錄一次

mkdir A B C 

在你的情況,$ DIRPATH會進行評估並創建第二個目錄,指向$ DIRPATH中包含的值

+2

'mkdir -p'的重點在於條件是不必要的。如果目錄已經存在,則什麼都不會發生;如果不是,則創建它。 – tripleee 2014-11-04 19:13:20

+0

是真的,請注意,'mkdir -p'將根據需要生成父目錄。 – Kalenda 2014-11-04 20:08:05

1

EOF意外結束是因爲你有雙「」在

"Creating DIrecroty"" 

由於伊坦建議,更好的辦法是使用

mkdir -p "$HOME/Smart_Cycle" 

-p將確保指定路徑中的所有目錄存在,如果不存在,它們將被創建。

+0

我不確定'-p'是否需要*此處*:'$ HOME'應該是一個現有的目錄,並且'Smart_Cycle'只有一個目錄深 – 2014-11-04 20:14:22

+0

沒有-p,mkdir如果$ HOME/Smart_Cycle會失敗if 'Smart_Cycle'目錄存在 – bart 2014-11-04 21:06:07

+0

是否有網站列出可能的錯誤和解釋? – jmurphy1267 2014-11-15 17:41:02