我有这样的代码:为什么我的代码不能按我想要的那样工作?
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',然后简单地说'总+ = $ vrednost'。 – chepner
@chepner:你也可以在有或没有声明变量为整数的情况下做'((total + = vrednost))'。对我来说,这样做明确表示你的意思是加法而不是连接。 –