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

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

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

var=""
non="hi"

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

else
    echo "has data"
fi

输出:

line 6: [: missing `]'
has data

答案1

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

if [ -z "$var" ] && [ -z "$non" ]

答案2

正如安迪·道尔顿在他的回答中所说,你需要在之间留一个空格“$非”和右方括号]像这样:

[ -z "$non" ]

我只是想增加一点动力,说明为什么需要这样做。在 bash 中,方括号是命令(你可以尝试男人 [看看,这是手册测试命令),因此您需要 bash 的空间来确定您正在调用哪个命令。

相关内容