2016-06-29 18 views

答えて

4

あなたは$directoryを引用する必要があります。

if [ -d "$directory" ]; then 

そうでない場合は、拡張後のあなたはif [ -n "-d" ]; thenと同等であり、そうである

if [ -d ]; then 

の同等に残っています常に真実。 (-dが非空の文字列です。)あなたの例では

0

、次の試験得られます声明:あなたがしたいかをテストしません

if [ -d ]; then 
    ... 
fi 

を。このようなエラーを防ぐために受け入れられた練習は、このような二重引用符で変数を包むためにあるされて何

if [ -d "$directory" ]; then 
    ... 
fi 
+0

'[[-d]]'誤差があります。 '[-d]'は常に成功します。 – chepner

関連する問題