我需要的是将一个变量的值动态地(在循环中)增加另一个变量.以下是我的代码:
while read Plate City Town Village Area Population; do
echo "$Plate $City $Town $Village $Area $Population"
printf "\n$totalNumberOfTowns\n "
totalNumberOfTowns=$totalNumberOfTowns+$Town
totalNumberOfVillages=$totalNumberOfVillages+$Village
done < "cities.txt"
what I get when I run my code is a little bit not-correct.
我不明白为什么$totalNumberOfTown变量中有"City".另一个有趣的部分是它还进行计算(它对第三个参数求和,即该市的城镇数量.对于Adana是15,对于Adiyaman是9,以此类推.)
Edit:
Cities.txt的第一行是:
板城镇村区人口
see screenshot:
Edit-2: # I have tried these different syntaxes:
let "totalNumberOfTowns+=$Town" #1 I tried these different syntaxes
totalNumberOfTowns=$((expr $totalNumberOfTowns + $Town)) #2
totalNumberOfTowns=$((totalNumberOfTowns + Town)) #3
然而,他们每个人都给了我一些错误.
以下是示例cities.txt和示例代码:
板城镇村区人口 1 ADANA 15 508 14030 2258718 2 ADIYAMAN 9 420 7614 632459 3 AFYONKARAHİSAR 18 395 14230 736912 4 AĞRI 8 566 11376 535435 5 AMASYA 7 352 5520 335494 6 ANKARA 25 711 25706 5663322 7 ANTALYA 19 545 20723 2548308 34 İSTANBUL 40 166 5196 15462452
code个
#!/usr/bin/env bash
average=0
numberOfCities=80
declare -i totalNumberOfTowns=0 totalNumberOfVillages=0
arrayWithOut=""
while read Plate City Town Village Area Population; do
echo "$Plate $City $Town $Village $Area $Population"
printf "\n$totalNumberOfTowns\n "
totalNumberOfTowns+=$Town
totalNumberOfVillages+=$Village
done < "cities.txt"