パス引数が空文字列の場合、BASHファイルのテスト演算子は何を返しますか?たとえば:空文字列のBASHファイルテスト演算子
directory=""
# Something may or may not set "directory"
if [ -d "$directory" ]; then
# Do something...
fi
パス引数が空文字列の場合、BASHファイルのテスト演算子は何を返しますか?たとえば:空文字列のBASHファイルテスト演算子
directory=""
# Something may or may not set "directory"
if [ -d "$directory" ]; then
# Do something...
fi
あなたは$directory
を引用する必要があります。
if [ -d "$directory" ]; then
そうでない場合は、拡張後のあなたはif [ -n "-d" ]; then
と同等であり、そうである
if [ -d ]; then
の同等に残っています常に真実。 (-d
が非空の文字列です。)あなたの例では
、次の試験得られます声明:あなたがしたいかをテストしません
if [ -d ]; then
...
fi
を。このようなエラーを防ぐために受け入れられた練習は、このような二重引用符で変数を包むためにあるされて何
:
if [ -d "$directory" ]; then
...
fi
'[[-d]]'誤差があります。 '[-d]'は常に成功します。 – chepner