unix shell 脚本中缺少“]”错误

Jav*_*est 4 shell-script

我正在尝试运行一个小脚本,该脚本检查两个变量以查看它们是否为空。我得到了正确的输出,但如果也显示我缺少右括号的错误。我尝试使用双括号和圆括号,但没有用。

var=""
non="hi"

 if ([ -z "$var"] && [ -z "$non"])
then
    echo "both empty"

else
    echo "has data"
fi
Run Code Online (Sandbox Code Playgroud)

输出

line 6: [: missing `]'
has data
Run Code Online (Sandbox Code Playgroud)

And*_*ton 10

“$non”和]之间需要一个空格,并且不需要():

if [ -z "$var" ] && [ -z "$non" ]
Run Code Online (Sandbox Code Playgroud)