您的位置:首页 > 运维架构 > Shell

linux shell while读取文件变量作用域

2016-04-06 17:05 381 查看
程序如下:

-----程序开始----------

a=0

cat b.sh|while read line

do

a=$(($a+1))

echo "inter:"$a

done

echo "outer:"$a

----程序结束-----

程序输出结果为:

inter:1

inter:2

inter:3

inter:4

outer:0

请问为什么在循环内变量a的值已增加到4了,退出循环后变量a的值还是0

如果我想把变量的值传到外面我要如何做?

因为使用了管道的原因,改成下面这样就可以了

a=0

while read line

do

a=$(($a+1))

echo "inter:"$a

done < b.sh

echo "outer:"$a
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: