while read line 与for循环的区别 ---转载整理

while read line 是一次性将文件信息读入并赋值给变量line ,while中使用重定向机制,文件中的所有信息都被读入并重定向给了整个while 语句中的line 变量。

for是每次读取文件中一个以空格为分割符的字符串。

如下示例脚本:

  1. #/bin/bash
  2. IPS="10.1.1.10 3001
  3. 10.1.1.10 3003
  4. 10.1.1.11 3001
  5. 10.1.1.11 3002
  6. 10.1.1.11 3004
  7. 10.1.1.11 3005
  8. 10.1.1.13 3002
  9. 10.1.1.13 3003
  10. 10.1.1.13 3004
  11. 10.1.1.14 3002"
  12. echo "====while test ===="
  13. i=0
  14. echo $IPS | while read line
  15. do
  16. echo $(($i+1))
  17. echo $line
  18. done
  19. echo "====for test ===="
  20. n=0
  21. for ip in $IPS ;
  22. do
  23. n=$(($n+1))
  24. echo $ip
  25. echo $n
  26. done

输出结果如下:

点击(此处)折叠或打开

  1. ====while test ====
  2. 1
  3. 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
  4. ====for test ====
  5. 10.1.1.10
  6. 1
  7. 3001
  8. 2
  9. 10.1.1.10
  10. 3
  11. 3003
  12. 4
  13. 10.1.1.11
  14. 5
  15. 3001
  16. 6
  17. 10.1.1.11
  18. ....

当文件中有多行文字,在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 的输入重定向输入。

转载于:https://www.cnblogs.com/linux985/p/11302059.html

[shell] while read line 与for循环的区别相关推荐

  1. python中for循环和while循环的区别_Python中for循环和while循环有什么区别?

    for循环和while循环有什么区别?众做周知,循环是Python中最基础也是最常见的知识点之一,下面我们来一起好好学习一下for循环和while循环,并对比分析两者的使用区别,帮助Python初学者 ...

  2. Node.js event loop 和 JS 浏览器环境下的事件循环的区别

    Node.js  event loop 和 JS 浏览器环境下的事件循环的区别: 1.线程与进程: JS 是单线程执行的,指的是一个进程里只有一个主线程,那到底什么是线程?什么是进程? 进程是 CPU ...

  3. Java03-day03【switch、循环(for、while、do...while)、三种循环的区别、跳转控制语句、Random、循环经典例题】

    java零基础入门到精通(2019版)[黑马程序员] 视频+资料:[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg   提取码:zjxs] &qu ...

  4. java for in 循环_js的for in循环和java里foreach循环的区别分析

    本文实例分析了js的for in循环和java里foreach循环的区别.分享给大家供大家参考.具体分析如下: js里的for in循环定义如下: for(var variable in obj) { ...

  5. shell之xargs与-exec与管道的区别你造吗?

    Table of Contents 1.xargs作用: 2.使用模式: 3.xargs常用选项 4.xargs与管道|的区别 5.xargs与-exec的区别 1.xargs作用: (1)将前一个命 ...

  6. 空循环和无穷循环的区别

    空循环和无穷循环的区别 空循环并不会无休止地进行下去--在重复预先指定的次数后,它就会退出循环.无穷循环会无休止地进行下去,并且永远不会退出循环.把空循环和无穷循环对比一下,就能很好地说明它们之间的区 ...

  7. python中递归函数的基例_详谈Python基础之内置函数和递归 Python递归和循环的区别...

    Python 递归函数基例 2. 关于递归函数基例的说明,以下选项中错误的是 A 递归函数的基例决定所谓基例就是不需要递归就能求解的,一般来说是问题的最小规模下的解. 例如:斐波那契数列递归,f(n) ...

  8. for循环,for...in循环,forEach循环的区别

      for循环,for-in循环和forEach循环都是JavaScript中常用的循环方式,它们每种都有着自己的独特之处,接下来我们分析一下for循环,for-in循环和forEach循环的区别. ...

  9. Python循环语句_for_while循环的区别

    1.While循环和for循环的区别 1.for循环是一个广度遍历,而 while 循环是一个深度遍历. 2.while循环,指当满足while的条件的时候,就一直循环执行while的语句块,直到不满 ...

最新文章

  1. 程序模拟电影院窗口卖票,多线程Demo
  2. qt4 与php 通讯,Qt与外部程序通信问题
  3. (转载)GET和POST两种基本请求方法的区别
  4. NetApp 7MTT 工具进行存储数据的迁移
  5. OAuth2.0_环境搭建_Spring Security OAuth2.0认证授权---springcloud工作笔记139
  6. LINUX系统一一CentOS6.5之固化Ip
  7. 移动商城第十四篇【收货地址查询、添加、更新】
  8. 使用Github pages+jekyll搭建自己的博客(windows版)
  9. 开源一个简单的VC界面库
  10. Win10 新机,这些必装软件你拥有了吗?
  11. J2EE是技术还是平台还是框架? 什么是J2EE
  12. 面试宝典之深度学习面试题(下)
  13. 草图大师:SketchUp 2019 for Mac
  14. 线性代数:切线空间和法向量变换
  15. 文献阅读笔记:北极气溶胶与气候
  16. 蘑菇街Android组件与插件化
  17. CentOS修改hosts文件及生效命令
  18. Rsync 数据备份工具
  19. 程序员的1024|我学开发这一年|长路漫谈
  20. 【十一日记】 清北学堂酱油记

热门文章

  1. jsp为什么不加虚拟路径都能访问_JavaWeb学习笔记一(环境配置/jsp基本介绍)
  2. 自学Python编程和科班出身的Python编程差别在哪?一张图告诉你
  3. DeepMind发布《神经网络中持续学习》Cell综述论文
  4. 超强领先!Transformer图像复原效果显著!
  5. 麻省理工、微软为AI量身打造了一套leetcode编程题
  6. 开源 | CVPR 2021无需向量监督的矢量图生成算法
  7. R-CNN 物体检测第一弹
  8. 深度学习(七十二)tensorflow 集群训练
  9. 自动驾驶路径轨迹规划(三阶曲线spline)
  10. PHP代码中的情话,php语言编程情话