2013-03-06 113 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