最有可能
${JAVA_APP_DIR}/lib/classpath
不存在。
比较以下两个相似的代码位(只有第一行不同),在
POSIX公司
dash
外壳:
-
dummyfile文件
echo baz > dummyfile
unset foo
if false
then :
else while [ -z "$foo" ] ; do
foo="bar"
done < dummyfile
fi
echo "=$foo="
输出:
=bar=
-
dummyfile文件
不存在。
rm -f dummyfile
unset foo
if false
then :
else while [ -z "$foo" ] ; do
foo="bar"
done < dummyfile
fi
echo "=$foo="
dash: 65: cannot open dummyfile: No such file
==
文件的内容
while
循环从未运行过。
请注意,代码有点奇怪:
-
这个
循环始终运行
一旦
还有出口,因为
$foo
是
unset
然后重置。
-
有一个
done < dummyfile
,但不是
read
从中输入任何信息。但即使没有
命令,该文件的存在,结合
<
$富
已设置。
-
即使是空文件也可以:
unset foo
if false
then :
else while [ -z "$foo" ] ; do
foo="bar"
done < /dev/null
fi
echo "=$foo="