读取文件行时变量的作用域 for循环和while循环的作用域
来源:互联网 发布:网络请求超时怎么解决 编辑:程序博客网 时间:2024/05/17 08:34
shell编程经常要读文件行,可以用for,也可以用while。如果有空格,for读出来是以空格为分隔符,而while read 是以换行符为分隔符。
看下面的例子
1)一个普通的文本文件
[iptv@msg0 ana]$ more loghost.txt
msg0=172.41.17.127
msg1=172.41.17.128
msg2=172.41.17.129
msg3=172.41.17.130
msg4=172.41.17.131
msg5=172.41.17.132
msg6=172.41.17.135
msg7=172.41.17.136
2)写一个测试程序,变量a在经过for处理和while处理后的表现
[iptv@msg0 ana]$ more test2.sh
#!/bin/bash
a=2
cat loghost.txt|while read line;do
a=$line
done
echo after while:$a
for line in `cat loghost.txt`;do
a=$line
done
echo after for:$a
3)执行结果:
[iptv@msg0 ana]$ ./test2.sh
after while:2
after for:msg7=172.41.17.136
4)结论:
while read 循环里的变量是local的,不会对循环外的全局变量产生影响。
被这个坑害苦了!
0 0
- 读取文件行时变量的作用域 for循环和while循环的作用域
- for循环变量作用域的范围
- 注意for循环中变量的作用域
- 注意for循环中变量的作用域
- 注意for循环中变量的作用域
- js中for循环变量的作用域
- 解决VC6和VC2008的for循环变量作用域不同问题的一个方法
- for循环中的变量作用域
- JS中for循环变量作用域
- JS中for循环变量作用域
- C++的for循环作用域
- for循环作用域
- Python for, while循环后面加else的作用
- vc6中for语句定义的变量的作用域超出for循环的解决办法
- vc6中for语句定义的变量的作用域超出for循环的解决办法
- for each循环的作用
- 讲解Python中for循环下的索引变量的作用域
- ES6 中 let的在for循环中变量作用域问题的探讨
- R语言曲线拟合函数(绘图)
- C编译原理
- java中xxx.class表示的意思
- 免责声明
- 直接在main.storyboard里面添加其他界面
- 读取文件行时变量的作用域 for循环和while循环的作用域
- 找一个你仰慕的人,并且向他学习!
- IntelliJ Idea 使用大全
- jquery操作与滚动条相关操作
- Android全屏显示
- Spring 3.0 学习-环境搭建和三种形式访问
- android studio 接入滴滴出行SDk的过程中出现java.lang.UnsatisfiedLinkError的解决办法
- 页面中的自定义属性的几种方法
- java json层层解析