[: shell 中缺少 `]' 错误,[] 中的代码前后已有空格

[: shell 中缺少 `]' 错误,[] 中的代码前后已有空格

代码:

if [ $mintemp -ge 15 && $maxtemp -le 28 ]; then echo "nice day"; fi

我在 [ 和 $Mintemp 、 28 和 ] 之间已经有空格

但错误仍然发生

答案1

&&不是一个[]参数(因为[实际上是一个程序),它是 Bash 的运算符,用于在第一个命令成功时运行第二个命令。所以对于 bash 你的脚本看起来像:

if ([ $mintemp -ge 15) && ($maxtemp -le 28 ]; then echo "nice day"; fi)

这是无效的。但是你可以这样做:

if [ $mintemp -ge 15 ] && [ $maxtemp -le 28 ]; then echo "nice day"; fi

相关内容