KSH - HP-SOL-Lin 需要POSIX结合Unix测试命令&& + ||
我想测试多个条件是否为真,然后做一些事情。
假设:
FIELDS=0
$STRING=''
或$STRING=' '
现在我有:
if [[ $FIELDS -ne 0 && ! -z $STRING ]]; do
这工作得很好,如果$STRING
为空,但它也有一个空间。我怎样才能先处理两个$STRING
测试?从概念上讲,我想的等价的:记住
[[ $FIELDS -ne 0 && [ ! -z $STRING || $STRING = ' ' ] ]]
使用'[['会导致不确定的结果。如果你想成为POSIX,你必须使用''''或'test'。 –
@WilliamPursell'[['不会导致未指定的结果。非POSIX兼容的结果或不可移植的结果,是的,但'bash'或'ksh'或'zsh'或者其它正在执行的shell都会指定结果。 – twalberg
@twalberg引用标准:'以下单词在某些实现中可能被识别为保留字(当没有引用任何字符时),从而导致未指定的结果: [[]] function select' –