Linux:while read line与for循环的区别
while read line:是一次性将文件信息读入并赋值给变量line ,
while中使用重定向机制,文件中的所有信息都被读入并重定向给了整个while 语句中的line 变量。
for:是每次读取文件中一个以空格为分割符的字符串。
如下示例脚本:
#/bin/bash
IPS="10.1.1.10 3001
10.1.1.10 3003
10.1.1.11 3001
10.1.1.11 3002
10.1.1.11 3004
10.1.1.11 3005
10.1.1.13 3002
10.1.1.13 3003
10.1.1.13 3004
10.1.1.14 3002"
echo "====while test ===="
i=0
echo $IPS | while read line
do
echo $(($i+1))
echo $line
done
echo "====for test ===="
n=0
for ip in $IPS ;
do
n=$(($n+1))
echo $ip
echo $n
done
输出结果如下:
====while test ====
1
10.1.1.10 3001 10.1.1.10 3003 10.1.1.11 3001 10.1.1.11 3002 10.1.1.11 3004 10.1.1.11 3005 10.1.1.13 3002 10.1.1.13 3003 10.1.1.13 3004 10.1.1.14 3002
====for test ====
10.1.1.10
1
3001
2
10.1.1.10
3
3003
4
10.1.1.11
5
3001
6
10.1.1.11
....
当文件中有多行文字,在while循环中再一次调用read语句,就会读取到下一条记录。而$line中的最后一行已经读完,无法获取下一行记录,从而退出 while循环。
若使用while循环,想每次读取其中1行内容到变量$line,则可以使用以下方法:
#!/system/bin/sh
busybox cat /data/data/1.txt | while read LINE
do
adb shell gsr -m -p /data/data/$LINE 10000
done
while read line
do
echo $line
done<A
<A写在最后相当于给整个while do 语句加了一个约束条件,读取文件A里每行至文件尾结束
while read line<A
do
echo $line
done
<A写在前面,整个while do语句就没有约束条件, 因为 read line<A这个始终为真
表示 不停地 读取A中的第一行,赋值给参数line,然后打印参数line的值.
Linux:while read line与for循环的区别的更多相关文章
- [shell] while read line 与for循环的区别
[shell] while read line 与for循环的区别 while read line 与for循环的区别---转载整理 while read line 是一次性将文件信息读入并赋值给变量 ...
- 【shell】while read line 与for循环的区别
http://m.blog.itpub.net/22664653/viewspace-1175858/
- linux free命令中buffer与cache的区别
linux free命令中buffer与cache的区别 2012-05-15 个评论 收藏 我要投稿 linux free命令中buffer与cache的区别 ~$ ...
- Linux系统调用和ANSI C文件操作的区别
一.在Linux下对文件操作有两种方式:Linux系统调用和ANSI C文件操作. 1.Linux系统调用调用常用于I/O文件操作,系统调用常用的函数有open.close.read.write.ls ...
- Linux的sleep()和usleep()的使用和区别
Linux的sleep()和usleep()的使用和区别 函数名: sleep头文件: #include <windows.h> // 在VC中使用带上头文件 #include <u ...
- do while 循环和while循环的区别
do while 循环和while循环的区别 1.do while循环是先执行循环体,然后判断循环条件,如果为真,则执行下一步循环,否则终止循环: while循环是先判断循环条件,如果条件为真则 ...
- Linux 与 Unix 到底有什么不同?区别在哪?
Linux 与 Unix 到底有什么不同?区别在哪? 如果你是一名20多岁或30多岁的软件开发人员,那么你已成长在一个由Linux主导的世界中.数十年来,它一直是数据中心的重要参与者,尽管很难找到明确 ...
- Linux下/usr/bin与/usr/local/bin/区别总结
Linux下/usr/bin与/usr/local/bin/区别总结 2017年10月13日 12:30:17 2puT 阅读数:15930 版权声明:本文为博主原创文章! github地址:h ...
- Linux dd命令中dsync与fdatasync的区别【转】
在Linux系统中经常会使用dd命令来测试硬盘的写入速度,命令会涉及到两个参数:dsync与fdatasync,本文介绍一下其区别. dd if=/dev/zero of=/tmp/1Gbytes b ...
随机推荐
- 基于大量图片与实例深度解析Netty中的核心组件
本篇文章主要详细分析Netty中的核心组件. 启动器Bootstrap和ServerBootstrap作为Netty构建客户端和服务端的路口,是编写Netty网络程序的第一步.它可以让我们把Netty ...
- 用Python实现人像动漫化
用Python实现人像动漫化 本文章会教你如何使用Python实现人像动漫化,先看看效果实例: 实现过程如下: 本案例是使用百度的API来实现的,首先需要进入百度AI开放平台注册账号,具体流程就不讲了 ...
- 学信网改绑手机号码,但是忘记了老号码怎么办?利用node.js + puppeteer 跑脚本实现改绑手机号
最近登录学信网发现自己学信网上绑定的手机号码不是目前自己使用的手机号码,于是想改绑手机号,但是发现不记得之前的手机号码了: 于是百度各种方法都无济于事:也不想重新注册账号,最后看见一篇文章通过Pyth ...
- Flask WTForm disable choice field
Flask disable choice field ChoiceField = { render_kw={'disabled':''} } form.my_field.render_kw = {'d ...
- mysql: 看不见的空符号 char(9) char(10) char(13)
在统计年度销售额时,总觉得哪里不对劲.于是找了找,对了对,试了trim,消除前后的空格,也没反应. 在崩溃的边缘,终于发现了错的原因. 原来我在录入的时候,粘贴多了其他空白符号,看不见,摸不着,啊~ ...
- Java学习(二十)
今天学习了Java中的package和import 在包中写了一点作为练习 如果把Test02放到别的包,就需要import到别的包,就像这样,Test02在HelloWorld包 如果删掉impor ...
- PTA7-1 根据后序和中序遍历输出先序遍历
本题要求根据给定的一棵二叉树的后序遍历和中序遍历结果,输出该树的先序遍历结果. 输入格式: 第一行给出正整数N(≤30),是树中结点的个数.随后两行,每行给出N个整数,分别对应后序遍历和中序遍历结果, ...
- Python基础(map/reduce)
from functools import reduce#reduce函数在python3的内建函数移除了,放入了functools模块 #map() list1 = [1,2,3,4,5,6,7,8 ...
- cmd 命令 导出导入oracle数据库 的 表
原地址:https://www.cnblogs.com/mysterious-killer/p/11671741.html (防止) 导出: 不要数据的:exp username/pwd@localh ...
- Maven 依赖调解源码解析(三):传递依赖,路径最近者优先
本文是系列文章<Maven 源码解析:依赖调解是如何实现的?>第三篇,主要介绍依赖调解的第一条原则:传递依赖,路径最近者优先.本篇内容较多,也是开始源码分析的第一篇,请务必仔细阅读,否则后 ...