使用if语句比较bash脚本中的变量

使用if语句比较bash脚本中的变量,bash,shell,scripting,Bash,Shell,Scripting,因此,我对bash脚本非常陌生,但到目前为止,tldp.org一直是我的好朋友。不管怎样,我把自己弄糊涂了,发誓要这么做,所以我在寻求澄清方面的帮助:我声明了这样一个变量 MAXseeds=-1; 总和=0 我在脚本中做了很多事情,得到了一个新的和值,它是一个整数值。然后,我想比较MAXseeds和sumS,如果sumS较大,则使MAXseeds等于sumS。我通过以下方式做到这一点: echo $MAXseeds echo $sumS if [ $MAXseed

因此,我对bash脚本非常陌生,但到目前为止,tldp.org一直是我的好朋友。不管怎样,我把自己弄糊涂了,发誓要这么做,所以我在寻求澄清方面的帮助:我声明了这样一个变量
MAXseeds=-1; 总和=0 我在脚本中做了很多事情,得到了一个新的和值,它是一个整数值。然后,我想比较MAXseeds和sumS,如果sumS较大,则使MAXseeds等于sumS。我通过以下方式做到这一点:

  echo $MAXseeds      
  echo $sumS    
  if [ $MAXseeds -lt $sumS ];
  then 
     MAXseeds = $sumS
     best_file=$COUNT
  fi 
  echo $MAXseeds
从我所知道的情况来看,这应该是可行的,但是当我在脚本的这一部分上运行时,得到的终端输出是

  -1
  492
  lookup.sh: line 34: MAXseeds: command not found
  -1
基本上我想知道我做错了什么?为什么它会响应“未找到命令”?如果您能解释为什么这是不正确的,我们将不胜感激。

请尝试以下方法:

if [ $MAXseeds -lt $sumS ];
then 
  MAXseeds=$sumS
  best_file=$COUNT
fi 
没有“=”周围的空格


如果在“MAXseeds”后面加空格,则它将被解释为命令。当然,这不是命令,因此您会收到错误消息。

嘿,对不起,虽然您是正确的,但这不是问题。如果语句是第34行,我没有正确地从代码中复制该位,“=”周围没有空格。我也更新了问题以反映这一点。我的脚本试图将$MAXseeds作为一个命令而不是一个变量进行求值,这是为什么?@brendanmorrison:您没有显示第34行;你不能指望我们调试第34行。向我们展示您的问题的SSCCE()版本。不要否定已经给出的答案。不要期望我们创造奇迹——我们不能调试你没有展示的东西!Jonathan,我想编辑会更简单,但我会添加到我的问题中,并概述我的确切问题,因为我上面的内容不会通过删除缺陷来破坏问题。给那个回答你的人一个接受的机会,也许还可以投赞成票。