【发布时间】:2011-11-10 21:13:52
【问题描述】:
一个简单的变量测试:
#!/bin/bash
N=0
ls -l | while read L; do
N=$((N+1))
echo $N
done
echo "total $N"
运行然后输出:
1
2
3
total 0
我期望最终 N=3:“total 3”,但为什么循环后值重置为 0?
【问题讨论】:
-
已解决为已知的子外壳问题。查看*.com/questions/5006229/…
-
你可以将 $((N+1)) 替换为 ((N++)) ,结果相同
标签: bash