退出循环后,我遇到了局部变量的一些问题.尽管代码如下,变量max最终以值0结束:
- max=0
- cat tmp|while read line
- do
- temp=$(echo $line|tr -d "\n"|wc -c)
- if [ $temp -gt $max ];then
- max=$temp
- echo $max
- fi
- done
- echo -n tmp $max
- cat tmp
- 12345
- 123456
这是我收到的输出:
- 5
- 6
- tmp 0
我不明白为什么在退出循环后max为0,而在循环内它找到正确的值.
管道启动一个新的子shell,具有自己的环境和可变空间.使用<改为循环结束时的tmp.