当path参数为空字符串时,BASH文件测试运算符返回什么?例如:
directory=""
# Something may or may not set "directory"
if [ -d "$directory" ]; then
# Do something...
fi
答案 0 :(得分:4)
您需要引用select *
from t1
where EXISTS ( select 1
from t2
where name = 'Apple'
and ( ( t1.a = t2.id AND t1.b IS NULL )
OR ( t1.b = t2.id AND t1.a IS NULL ) ) )
:
$directory
否则,在扩展后,您将获得等效的
if [ -d "$directory" ]; then
相当于if [ -d ]; then
,因此总是如此。 (if [ -n "-d" ]; then
是非空字符串。)
答案 1 :(得分:0)
在您的示例中,该语句将产生以下测试:
if [ -d ]; then
...
fi
哪个不会测试你想要的内容。
防止此类错误的可接受做法是将变量用双引号括起来,如下所示:
if [ -d "$directory" ]; then
...
fi