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
-----程序开始----------
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
相关文章推荐
- 不一样的命令行 – Windows PowerShell简介
- java调用shell获取返回值
- Linux shell之打印输出
- Shell排序
- webhdfs 使用shell下载文件
- Ubuntu下将命令行封装成全局命令
- PowerShell 多线程的使用
- Linux Shell 文本处理工具集锦
- shell脚本之条件测试
- I.MX6 Android Linux shell MMPF0100 i2c 设置数据
- shell编程之运算符
- 日常 shell 命令汇总
- shell脚本之echo命令
- Bash玩转脚本2之自己的脚本管理工具
- shell 处理文本工具集合(常用命令)
- shell中的${},##和%%的使用
- Ubuntu 改动bash
- Linux进阶之bash编程(流程控制if-else)
- linux awk和其它shell 编程变量
- Shell去掉文件中的空行