[shell] while read line 与for循环的区别
[shell] while read line 与for循环的区别
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
--------------------------------------------------------------------------------------------------------------------
原作者的【解决方法】---存疑,不太理解,后续学习
1 使用ssh -n "command"
2 ssh "cmd" < /dev/null 将ssh 的输入重定向输入。
[shell] while read line 与for循环的区别的更多相关文章
- 【shell】while read line 与for循环的区别
http://m.blog.itpub.net/22664653/viewspace-1175858/
- Linux:while read line与for循环的区别
while read line:是一次性将文件信息读入并赋值给变量line , while中使用重定向机制,文件中的所有信息都被读入并重定向给了整个while 语句中的line 变量. for:是每次 ...
- 简单的自动化运维工具(shell+except+whiptail+功能模块化函数+循环)
简单的自动化运维工具(shell+except+whiptail+功能模块化函数+循环) http://www.cnblogs.com/M18-BlankBox/p/5881700.html
- 如何在Windows下开发Python:在cmd下运行Python脚本+如何使用Python Shell(command line模式和GUI模式)+如何使用Python IDE
http://www.crifan.com/how_to_do_python_development_under_windows_environment/ 本文目的 希望对于,如何在Windows下, ...
- Shell脚本的条件控制和循环语句
条件判断:if语句 语法格式: if [ expression ] then Statement(s) to be executed if expression is true fi 注意:expre ...
- 『忘了再学』Shell流程控制 — 38、while循环和until循环介绍
目录 1.while循环 2.until循环 1.while循环 对while循环来讲,只要条件判断式成立,循环就会一直继续,直到条件判断式不成立,循环才会停止.和for循环的第二种格式for((初始 ...
- do while 循环和while循环的区别
do while 循环和while循环的区别 1.do while循环是先执行循环体,然后判断循环条件,如果为真,则执行下一步循环,否则终止循环: while循环是先判断循环条件,如果条件为真则 ...
- python中生成器对象和return 还有循环的区别
python中生成器对象和return 还有循环的区别 在python中存在这么一个关键字yield,这个关键字在项目中经常被用到,比如我写一个函数不想它只返回一次就结束那我们就不能用return,因 ...
- [转载]Java迭代器(iterator详解以及和for循环的区别)
Java迭代器(iterator详解以及和for循环的区别) 觉得有用的话,欢迎一起讨论相互学习~[Follow] 转载自 https://blog.csdn.net/Jae_Wang/article ...
随机推荐
- C# 读取Excel文件数据
1.首先需要在管理NuGet程序包中添加外部包:ExcelDataReader,添加好后,不要忘记在命名空间那里引用. 2.定义文件流,将文件流传入IExcelDataReader类型的对象excel ...
- Python 实现两个矩形重合面积
计算两个矩形的重合面积 import math x1, y1, x2, y2 = input().split(" ") x1, y1, x2, y2=int(x1), int(y1 ...
- 性能测试基础---ant集成1
·Jmeter的命令行与ant等的集成.·为什么需要使用Jmeter的命令行模式(Non-GUI).·为了更好的利用负载机的资源.GUI模式会消耗更多的系统资源.·为了更好的掌握jmeter和其它工具 ...
- axios之Vue请求初始化数据放在Created还是Mounted?
先分析下生命周期 beforecreated:el 和 data 并未初始化 created:完成了 data 数据的初始化,el没有 beforeMount:完成了 el 和 data 初始化 mo ...
- LOJ#105. 文艺平衡树(FHQ Treap)
题面 传送门 题解 \(FHQ\ Treap\)比起\(Splay\)还是稍微好写一点--就是老是忘了要下穿标记-- //minamoto #include<bits/stdc++.h> ...
- 如何解决飞秋FeiQ绑定端口错误
今天启动feiQ居然报错,绑定端口2425错误,如您正使用FeiQ或IPMsg,请先退出. error = 10049... 百度谷歌之后,本人如此解决 1.netstat -an 查看端口 2425 ...
- HTML基础一-html、CSS
一.HTML标签 前端语言 HTML-将页面展现出来 CSS-修饰前端标签 让HTML更好看 css 对html 进行修饰 JS-能够让页面动起来 HTML htyper text mar ...
- ESA2GJK1DH1K微信小程序篇: 小程序实现MQTT封包源码使用说明
说明 我为了后期能够快速的让小程序实现MQTT,我做了一个MQTT的封装. 功能的封装有助于后期快速的开发,还方便咱维护. 我后期的所有代码皆使用此封装库, 这一节,我就详细的介绍我封装的MQTT.j ...
- Python实现电子词典
代码一览: dictionary/├── code│ ├── client.py│ ├── func.py│ ├── server.py│ └── settings.py├── dat ...
- Vue中的v-bind指令
普通: property="value" 此时 value为字符串 v-bind指令 v-bind:property="value" 此时 value会被解析成 ...