2013-03-06 109 views
0

因此,我对bash脚本编程相当陌生,但到目前为止,tldp.org一直是一个好朋友。无论如何,我混淆了自己,并发誓要寻求帮助澄清:我宣布这样的变量:
MAXseeds = -1; sumS = 0 我在脚本中做了一堆事情,并获得sumS的新值,它是一个整数值。然后我想比较MAXseeds和sumS,如果sumS较大使MAXseeds等于sumS。使用if语句比较bash脚本中的变量

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 

基本上我想知道我做错了:我通过这样做这里?为什么它用未找到的命令作出响应?为什么这是不正确的任何解释将不胜感激。

+1

不要通过消除缺陷来消除问题。给那些接受你回答的人,也许还会加入一个投票。 – 2013-03-06 14:37:00

回答

2

试试这个:

if [ $MAXseeds -lt $sumS ]; 
then 
    MAXseeds=$sumS 
    best_file=$COUNT 
fi 

不含空格围绕 “=”。

如果您在“MAXseeds”之后放置空格,那么它将被解释为命令。当然,这不是一个命令,因此你会得到你的错误信息。

+0

哎对不起,虽然你会是正确的,这不是问题,如果语句是第34行,我没有正确地从我的代码复制那一点,“=”周围没有空格。我已更新问题以反映这一点。我的脚本试图将$ MAXseeds作为一个命令而不是一个变量,这是为什么? – brendosthoughts 2013-03-06 13:58:52

+0

@ brendanmorrison:你不显示第34行;你不能指望我们调试第34行。向我们展示你的问题的SSCCE([Short,Self-Contained,Correct Example](http://sscce.org/))版本。不要使已经给出的答案无效。不要指望我们创造奇迹 - 我们无法调试你没有显示的东西! – 2013-03-06 14:39:17

+0

会做乔纳森,我认为编辑会更简单无论如何我会加入到我的问题,并概述我的确切问题,因为我清楚上面应该工作 – brendosthoughts 2013-03-06 14:48:18