我只是學習用bash編碼,而且我遇到了一些練習題。我覺得我可能會在語法上做錯了什麼,但不管我怎麼看它都沒有錯。For循環語法?
我在這裏得到的代碼應該找到1000到10000之間的'幸運數字'。在這種情況下,幸運數字是一個數字,數字總和爲一個數字,總和爲7。幸運數字的計算是獨立運作的,但是一旦我把它放到一個for循環中,沒有單一輸入的地方,輸出就是無限的和錯誤的。我只能假設for循環的問題是:
digit=0
sum=0
for ((i=1000; i<=10000; i++))
do
while [ $i -gt 0 ]
do
digit=$(($i % 10))
i=$(($i/10))
sum=$(($sum + $digit))
done
while [ $sum -gt 0 ]
do
digit=$(($sum % 10))
sum$(($sum/10))
sum2=$(($sum2 + $digit))
done
if [[ $sum2 == 7 ]];
then
echo $sum2
fi
done
如果任何人有任何想法,我做錯了,甚至能讓它更好,我將不勝感激!
這一行的意圖是什麼:'sum $(($ sum?10))'。我假設這是一個複製/粘貼錯誤。 – eddiem
'1 <= 10000'總是如此。 – kaitoy
一個很好的問題是隔離一個單一的具體問題,並刪除所有內容,但只需展示該問題所需的最少代碼量。請參閱http://sscce.org/或http://stackoverflow.com/help/mcve –