预计Bash一元运算符

The*_*psy 8 bash

好的,所以在我的脚本中(这是我第一次使用bash)我遇到了2个一元运算符预期的错误.代码本身实际上工作正常,但是它在运行时向我展示了这些错误.

[: !=: unary operator expected
Run Code Online (Sandbox Code Playgroud)

为线

if [ ${netmask[1]} != "" ]; do
Run Code Online (Sandbox Code Playgroud)

所以对于第一个错误,当它抛出${netmask[1]}""(null),我已经尝试了多种想法,但仍无法得到它没有在这个过程中返回的错误工作

任何帮助,将不胜感激!

编辑:通过添加引号(grrr)解决

if [ "${netmask[1]}" != "" ]; do
Run Code Online (Sandbox Code Playgroud)

kam*_*uel 6

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

if [ -z "${netmask[1]}" ]; then
Run Code Online (Sandbox Code Playgroud)

例如:

VAR=""

if [ -z "$VAR" ]; then
  echo This will get printed
fi
Run Code Online (Sandbox Code Playgroud)

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