У меня есть этот код:Почему мой код не работает так, как я его хочу?
total=0;
ps -u $(whoami) --no-headers | awk {'print $1'} | while read line;
do vrednost=$(pmap $line | tail -n1 | column -t | cut -d" " -f3 | tr "K" " ");
total=$((vrednost + total))
echo $total
done
echo total: $total
Как вы можете видеть, мой код суммы использования всех моих процессов. Когда я повторяю свое общее количество каждый раз, пока он работает нормально, но в конце ... Когда я хочу, чтобы сумма была значением (echo total: $total
), она все равно равна нулю. но до (в while
) имеет правильное значение.
не ответ на вашу проблему, но вы можете объявить 'total' иметь атрибут«целое», используя' -i объявить общее = 0', то просто скажите 'total + = $ vrednost'. – chepner
@chepner: вы также можете сделать '((total + = vrednost))' с объявлением или без объявления переменной как целого. Для меня это делает ясно, что вы имеете в виду добавление, а не конкатенацию. –