Проблема в том, что вы увеличиваете количество неудачных запусков в другой оболочке.Когда вы запускаете
(printf "$req: Failed\n" >> $LOGFILE && ((FAILED++)))
, вы запускаете новый процесс;в этом процессе FAILED увеличивается, но не в вашем «главном» процессе.Вы должны удалить эти окружающие скобки.
printf "$req: Failed\n" >> $LOGFILE && ((FAILED++))
ПРИМЕЧАНИЕ : предположим, что вы хотите сгруппировать команды вместе, не вызывая новый процесс;рассмотрите возможность использования фигурных скобок:
{ printf "$req: Failed\n" >> $LOGFILE && ((FAILED++)) ; }
Пример, чтобы показать это вам:
FAILED=0
for i in $(seq 1 3); do
(echo "FAILED=$FAILED" && ((FAILED++)))
done
дает
FAILED=0
FAILED=0
FAILED=0
Теперь удалите окружающие скобки:
FAILED=0
for i in $(seq 1 3); do
echo "FAILED=$FAILED" && ((FAILED++))
done
и вы получите
FAILED=0
FAILED=1
FAILED=2