Как сделать мой код правильным и увеличить переменную во время каждого цикла for? - PullRequest
0 голосов
/ 10 января 2019

У меня есть цикл for и переменные durIPFS1 durIPFS2 durIPFS3 durIPFS4 durIPFS5. Я хочу получить общее целочисленное значение (переменная «сумма») из этих пяти переменных и увеличить его в каждом цикле одинаковым образом. Допустим, это результаты первого цикла: durIPFS1 = 1, durIPFS2 = 2, durIPFS3 = 3, durIPFS4 = 4, durIPFS5 = 5, затем сумма равна 15. Это второй цикл: durIPFS1 = 2, durIPFS2 = 2, durIPFS3 = 3 , durIPFS4 = 4, durIPFS5 = 5, сумма равна 16. И я хочу, чтобы цикл for возвращал sum = 31 в качестве конечного значения переменной sum. Это мой код и мое проверенное решение, которые не работают.

sum=0
#--------------------------
for ((i = 1; i <=$loopsNo; i++))
do
startIPFS1=$(date +%s.%N);
$IPFS_NODE1 "ipfs get 
QmR7GSQM93Cx5eAg6a6yRzNde1FQv7uL6X1o4k7zrJa3LX"
durIPFS1=$(echo "$(date +%s.%N) - $startIPFS1" | bc);
printf "\n Download time of IPFS_NODE1: %s seconds\n" $durIPFS1
sleep $delay

startIPFS2=$(date +%s.%N);
$IPFS_NODE2 "ipfs get 
QmR7GSQM93Cx5eAg6a6yRzNde1FQv7uL6X1o4k7zrJa3LX"
durIPFS2=$(echo "$(date +%s.%N) - $startIPFS2" | bc);
printf "\n Download time of IPFS_NODE2: %s seconds\n" $durIPFS2
sleep $delay

startIPFS3=$(date +%s.%N);
$IPFS_NODE3 "ipfs get 
QmR7GSQM93Cx5eAg6a6yRzNde1FQv7uL6X1o4k7zrJa3LX"
durIPFS3=$(echo "$(date +%s.%N) - $startIPFS3" | bc);
printf "\n Download time of IPFS_NODE3: %s seconds\n" $durIPFS3
sleep $delay

startIPFS4=$(date +%s.%N);
$IPFS_NODE4 "ipfs get 
QmR7GSQM93Cx5eAg6a6yRzNde1FQv7uL6X1o4k7zrJa3LX"
durIPFS4=$(echo "$(date +%s.%N) - $startIPFS4" | bc);
printf "\n Download time of IPFS_NODE4: %s seconds\n" $durIPFS4
sleep $delay

startIPFS5=$(date +%s.%N);
$IPFS_NODE5 "ipfs get 
QmR7GSQM93Cx5eAg6a6yRzNde1FQv7uL6X1o4k7zrJa3LX"
durIPFS5=$(echo "$(date +%s.%N) - $startIPFS5" | bc);
printf "\n Download time of IPFS_NODE5: %s seconds\n" $durIPFS5
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
sum=$((sum + $durIPFS1+$durIPFS2+$durIPFS3+$durIPFS4+$durIPFS5))
printf "$sum"
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
done

Ошибка, которую я получаю:

downloadTEST.sh: line 55: sum + 
1.556882849+.935912136+.801312520+1.036579153+1.110331068: syntax 
error: invalid arithmetic operator (error token is 
".556882849+.935912136+.801312520+1.036579153+1.110331068")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...