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. 中间使用关系运算符 '&&' 或 '||' 时,一定要把前后的条件都用中括号括起来。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 特殊权限有三个 一,SUID suid使用: 需求:默认情况下,所有的普通用户,都无法查看/etc/shadow,...
    乐多_eec5阅读 3,505评论 0 0
  • word查找与替换1.删除所有空行 pp替换成一个 ^p2.将文档中所有数字(字母),加粗蓝字查找内容点特殊格式...
    861080da1338阅读 2,271评论 0 0
  • 壹 拎着行李箱从县城开往镇上的中巴车里走出来,在双脚跨出车门的那一刹那,一股桂花的香气扑面而来,让我倾刻忘了这一路...
    李茗阅读 4,168评论 10 9
  • 走六小时寂寞的长途, 到你头边放一束红山茶。 我等待着,长夜漫漫, ...
    倒霉孩子xz阅读 3,707评论 0 0
  • (五) 次日,乔薇从外省回来,她坚持要请我吃顿晚饭,并且把接陆诗琪的酬劳给我。 其实从乔薇那里退房也还没过去多久,...
    林失意流浪记阅读 2,118评论 0 1