我使用command | awk '{ print $1; }' | while read val ; do
循环命令输出。最近我想计算总和,我发现了一些奇怪的行为bash
:
test.txt 的内容
100
200
300
test.sh 的内容
sum='0'
cat test.txt | awk '{ print $1; }' | while read val ; do
sum=`expr $sum + $val`
echo "sum is now: $sum"
done
echo "FINAL SUM: $sum"
执行 test.sh 的输出
sum is now: 100
sum is now: 300
sum is now: 600
FINAL SUM: 0
最终总和应该是 600。我能做些什么来解决这个问题?