bash中的if条件语句报错[: missing `]'

这是我的一个小demo

#!/bin/bash

read -p "请输入3个数:" n1 n2 n3
if [ $n1 -gt $n2 ] && [ $n1 -gt $n3 ]
then
echo "max_num is $n1"
elif [ $n3 -gt $n2 ] && [ $n1 -lt $n3 ]
then
echo "max_num is $n3"
else
echo "max_num is $n2"
fi

之所以会报错[: missing `]',主要会因为以下原因:

  1. if与 '[' 、'[' 与条件、']' 与条件、'-gt' 与前后要比较的数之间都要使用空格;
  2. 中间使用关系运算符 '&&' 或 '||' 时,一定要把前后的条件都用中括号括起来。
原文地址:https://www.cnblogs.com/fnlingnzb-learner/p/15387238.html