2014-01-31 52 views
1

我一直在使用bash編寫的程序與mysql數據庫交互,我切換到microsoft sql server,現在我有一個很奇怪的問題。下面的代碼使用mysql。使用微軟的SQL服務器,我可以看到它成功地拉出了計數。我的「echo $ id」顯示的值應該是23,但問題是bash吐出「語法錯誤:對循環變量不好」。我很困惑它爲什麼這樣做,23是一個整數值。請幫忙。Bad for Loop變量在bash中與sql服務器

id="`tsql -S Server\\SqlServerName -U Databas_Name -P Password -o q <<EOF 
use numbers 
go 
SELECT COUNT(*) FROM lotsa_numbers 
go 
quit 
EOF`" 

echo $id 
for ((c=0; c=>$id-1; c++)) 
do 
     echo $c 
done 
+1

出於好奇,你爲什麼要這樣做for循環,而不是'c <= $ id'? – BroSlow

+0

此外,爲了縮小這個範圍,可以嘗試在for循環之前放置'id = $(echo $ id)'(這會截斷前導空格和尾隨空格等)。 – BroSlow

+0

BroSlow,感謝您的幫助,如果您發佈回聲$ id問題作爲一種解決方案我會選中您,這正是我所需要的,您應該得到信用。我也有-1,因爲我正在處理索引0. – Cfoote7

回答

1

問題可能是前導空白或尾隨空白。的方式來處理這個號碼,一個簡單的一種是使用bash的開裂不是引用變量(可能導致在某些情況下的一個問題,但如果我們試圖得到一個整數)

id=$(echo $id)