[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 ...
随机推荐
- Linux文件服务管理之vsftpd
简介 vsftpd是 "very secure FTP deamon"的缩写,是一个完全免费,开源的ftp服务器软件. 特点 小巧轻快,安全易用,支持虚拟用户.支持带宽限制等功能. ...
- centos7 安装 ffmpeg
升级系统 yum install epel-release -yyum update -y 安装Nux Dextop Yum源 由于centos 没有官方软件包,我们可以使用第三方YUM源(Nux D ...
- sql字符转义
/** * sql 内的like % 代表一个或多个字符, _代表一个字符,这都是需要转义的 * @param s * @return */ public static String escapeSp ...
- 【会话技术】Cookie技术 案例:访问时间
创建时间:6.30 代码: package cookie; import java.io.IOException; import java.text.SimpleDateFormat; import ...
- 目标检测论文解读6——SSD
背景 R-CNN系列算法检测速度不够快,YOLO v1检测准确率较低,而且无法检测到密集目标. 方法 SSD算法跟YOLO类似,都属于one stage的算法,即通过回归算法直接从原图得到预测结果,为 ...
- 视频合并时使用python批量修改文件名
不知道大家有没有遇到这样的情况,比如视频合并时文件名没有按照正常顺序排列,像这样 可见,文件名排序是乱的.这个样子合并出来的视频一定也是乱的.所以得想办法把文件名修改一下,让软件读取出正确的顺序.闲话 ...
- 使用async进行结构化并发程序开发
异步风格的函数: 继续来学习async相关的东东,对于它其实可以用到函数上,也就是用它可以定义一个异步风格的函数,然后在该函数中再来调用普通的函数,下面来瞅一下: 其实“GlobalScope.asy ...
- centos7.7离线安装nginx
一.1.安装openssl,因为编译安装nginx需要指定openssl目录 mkdir /data/openssl -p cd /data/openssl wget https://www.open ...
- WeUI教程/第三方扩展及其他UI框架对比
WeUI 是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信内网页和微信小程序量身设计,令用户的使用感知更加统一.包含button.cell.dialog. progress. toa ...
- mybatis框架-choose when otherwise 的使用
需求:模拟实际业务情况,传入多条件进行查询 /** * 需求:模拟实际业务,用户传入多个条件,进行用户列表信息的查询 * @param roleids * @return */ public List ...