[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 的输入重定向输入。
转载于:https://www.cnblogs.com/linux985/p/11302059.html
[shell] while read line 与for循环的区别相关推荐
- python中for循环和while循环的区别_Python中for循环和while循环有什么区别?
for循环和while循环有什么区别?众做周知,循环是Python中最基础也是最常见的知识点之一,下面我们来一起好好学习一下for循环和while循环,并对比分析两者的使用区别,帮助Python初学者 ...
- Node.js event loop 和 JS 浏览器环境下的事件循环的区别
Node.js event loop 和 JS 浏览器环境下的事件循环的区别: 1.线程与进程: JS 是单线程执行的,指的是一个进程里只有一个主线程,那到底什么是线程?什么是进程? 进程是 CPU ...
- Java03-day03【switch、循环(for、while、do...while)、三种循环的区别、跳转控制语句、Random、循环经典例题】
java零基础入门到精通(2019版)[黑马程序员] 视频+资料:[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg 提取码:zjxs] &qu ...
- java for in 循环_js的for in循环和java里foreach循环的区别分析
本文实例分析了js的for in循环和java里foreach循环的区别.分享给大家供大家参考.具体分析如下: js里的for in循环定义如下: for(var variable in obj) { ...
- shell之xargs与-exec与管道的区别你造吗?
Table of Contents 1.xargs作用: 2.使用模式: 3.xargs常用选项 4.xargs与管道|的区别 5.xargs与-exec的区别 1.xargs作用: (1)将前一个命 ...
- 空循环和无穷循环的区别
空循环和无穷循环的区别 空循环并不会无休止地进行下去--在重复预先指定的次数后,它就会退出循环.无穷循环会无休止地进行下去,并且永远不会退出循环.把空循环和无穷循环对比一下,就能很好地说明它们之间的区 ...
- python中递归函数的基例_详谈Python基础之内置函数和递归 Python递归和循环的区别...
Python 递归函数基例 2. 关于递归函数基例的说明,以下选项中错误的是 A 递归函数的基例决定所谓基例就是不需要递归就能求解的,一般来说是问题的最小规模下的解. 例如:斐波那契数列递归,f(n) ...
- for循环,for...in循环,forEach循环的区别
for循环,for-in循环和forEach循环都是JavaScript中常用的循环方式,它们每种都有着自己的独特之处,接下来我们分析一下for循环,for-in循环和forEach循环的区别. ...
- Python循环语句_for_while循环的区别
1.While循环和for循环的区别 1.for循环是一个广度遍历,而 while 循环是一个深度遍历. 2.while循环,指当满足while的条件的时候,就一直循环执行while的语句块,直到不满 ...
最新文章
- 程序模拟电影院窗口卖票,多线程Demo
- qt4 与php 通讯,Qt与外部程序通信问题
- (转载)GET和POST两种基本请求方法的区别
- NetApp 7MTT 工具进行存储数据的迁移
- OAuth2.0_环境搭建_Spring Security OAuth2.0认证授权---springcloud工作笔记139
- LINUX系统一一CentOS6.5之固化Ip
- 移动商城第十四篇【收货地址查询、添加、更新】
- 使用Github pages+jekyll搭建自己的博客(windows版)
- 开源一个简单的VC界面库
- Win10 新机,这些必装软件你拥有了吗?
- J2EE是技术还是平台还是框架? 什么是J2EE
- 面试宝典之深度学习面试题(下)
- 草图大师:SketchUp 2019 for Mac
- 线性代数:切线空间和法向量变换
- 文献阅读笔记:北极气溶胶与气候
- 蘑菇街Android组件与插件化
- CentOS修改hosts文件及生效命令
- Rsync 数据备份工具
- 程序员的1024|我学开发这一年|长路漫谈
- 【十一日记】 清北学堂酱油记
热门文章
- jsp为什么不加虚拟路径都能访问_JavaWeb学习笔记一(环境配置/jsp基本介绍)
- 自学Python编程和科班出身的Python编程差别在哪?一张图告诉你
- DeepMind发布《神经网络中持续学习》Cell综述论文
- 超强领先!Transformer图像复原效果显著!
- 麻省理工、微软为AI量身打造了一套leetcode编程题
- 开源 | CVPR 2021无需向量监督的矢量图生成算法
- R-CNN 物体检测第一弹
- 深度学习(七十二)tensorflow 集群训练
- 自动驾驶路径轨迹规划(三阶曲线spline)
- PHP代码中的情话,php语言编程情话