shell
2017-10-14 本文已影响0人
陈振强
- 变量作用域陷阱
i=0;
cat xx.txt | while read line
do
i=1;
done;
echo $i;
输出为1
,原因是管道符,在此之下的变量作用域都是在该管道符之内,要想达到修改的效果,可以改写迭代方式:
i=0;
for line in `cat xx.txt`
do
i=1;
done;
echo $i;
i=0;
cat xx.txt | while read line
do
i=1;
done;
echo $i;
输出为1
,原因是管道符,在此之下的变量作用域都是在该管道符之内,要想达到修改的效果,可以改写迭代方式:
i=0;
for line in `cat xx.txt`
do
i=1;
done;
echo $i;