8

好的,所以在我的脚本中(这是我第一次使用 Bash)我遇到了两个一元运算符预期的错误。代码本身实际上运行良好,但它在运行时向我展示了这些错误:

[: !=: 应为一元运算符

对于线路:

if [ ${netmask[1]} != "" ]; do

所以对于第一个错误,它在${netmask[1]}is ""( null) 时被抛出。我已经尝试了多种想法,但仍然无法在不返回该错误的情况下使其工作。


我通过添加引号解决了它(grrr)

if [ "${netmask[1]}" != "" ]; do
4

1 回答 1

7

如果要检查null变量的值,请使用-z运算符:

if [ -z "${netmask[1]}" ]; then

例如:

VAR=""

if [ -z "$VAR" ]; then
  echo This will get printed
fi

请注意变量周围的括号:"$VAR".

于 2013-03-20T11:19:11.793 回答