次のコードがあります
for ip in $(ifconfig | awk -F ":" '/inet addr/{split($2,a," ");print a[1]}')
do
bytesin=0; bytesout=0;
while read line
do
if [[ $(echo ${line} | awk '{print $1}') == ${ip} ]]
then
increment=$(echo ${line} | awk '{print $4}')
bytesout=$((${bytesout} + ${increment}))
else
increment=$(echo ${line} | awk '{print $4}')
bytesin=$((${bytesin} + ${increment}))
fi
done < <(pmacct -s | grep ${ip})
echo "${ip} ${bytesin} ${bytesout}" >> /tmp/bwacct.txt
done
インクリメントされた値を bwacct.txt に出力したいのですが、代わりにファイルはゼロでいっぱいです:
91.227.223.66 0 0
91.227.221.126 0 0
127.0.0.1 0 0
Bash についての私の理解では、リダイレクトされた for ループは変数を保持する必要があります。私は何を間違っていますか?