一、代码1:

while read LINE

do
    echo *******************************************$LINE
    ssh 127.0.0.1 cat

done < data.txt

实际结果:

1. echo命令只能打印第一行

2. ssh命令把data.txt文件当作输入,并打印出除第一行之外的其他的行

不符合预期的原因分析:

while中使用重定向机制,data文件中的信息都已经读入并重定向给了整个 while语句。所以当我们在while循环中再一次调用read语句,就会读取到下一条记录。

但是,因为ssh会读取存在的缓存。调用完ssh语句后,输入缓存中已经都被读完了,当read语句再读的时候当然也就读不到纪录,循环也就退出了。

这种方式的改进方式就是如代码2所示,对ssh使用输入重定向,而防止它去读while的缓存。

或者使用代码3的方式,即避免了使用重定向的方式。

二、代码2:

while read LINE
do
    echo *******************************************$LINE
    ssh 127.0.0.1 ls < /dev/null
done < data.txt

实际结果:

1. echo命令依次打印出所有的行
2. 每打印一行,ssh命令执行一次

三、代码3:

for LINE in `cat data.txt`

do

echo *******************************************$LINE 
    ssh 127.0.0.1 ls

done

实际结果:

1. echo命令依次打印出所有的行
2. 每打印一行,ssh命令执行一次

while循环因为内部使用ssh命令而导致不能循环文件的所有行相关推荐

  1. cmd运行jmeter提示不是内部或外部命令

    学习jmeter生成报告的时候,运行生成报告的命令,一直提示不是内部或外部命令~~ 如果未生成结果文件(.jtl),可运行如下命令生成报告: jmeter -n -t source.jmx -l re ...

  2. javac不是内部或外部命令的解决方案

    点赞后看,养成习惯 喜欢的话 可以点个关注哟 你们的点赞支持对博主们来说很重要哦 !!! 01 问题描述 CMD命令行下使用javac指令,提示以下信息 "'javac'不是内部或外部命令, ...

  3. windows连接远程服务器报错‘SSH‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件 解决方案

    windows连接远程服务器报错'SSH' 不是内部或外部命令,也不是可运行的程序 或批处理文件 解决方案 参考文章: (1)windows连接远程服务器报错'SSH' 不是内部或外部命令,也不是可运 ...

  4. Linux SSH命令使用大全

    先暂时发一个比较全面的说明在这里,以后可以考虑发一个具体例子出来. rm -rf mydir /* 删除mydir目录 */ cd mydir /* 进入mydir目录 */ cd – /* 回上一级 ...

  5. linux进阶-ssh命令的使用技巧全get

    掌握ssh命令的使用 文章目录 掌握ssh命令的使用 准备工作 1.ssh客户端连接服务器 2.ssh基于公私钥验证是否 是特定客户端 3.开启服务器node1, 将node3的sshd服务对应的公私 ...

  6. Linux常用命令——ssh命令

    在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) ssh openssh套件中的客户端连接工具 补充说明 ssh命令是openssh套件中的客户端连 ...

  7. Linux SSH命令大全

    Linux SSH命令大全 rm -rf mydir /* 删除mydir目录 */ cd mydir /* 进入mydir目录 */ cd – /* 回上一级目录 */ cd ~ /* 回根目录 * ...

  8. 【Linux】SSH协议 SSH登录和SCP传文件指令 ssh命令中变量的空格问题

    SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定:SSH 为建立在应用层基础上的安全协议.SSH 是较可靠,专为远程登录会话和 ...

  9. jdk12‘javac‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。

    前言: 安装JDK12遇到的问题以及学习过程, 我第一次用网上的安装办法,下载EXE后,配置好三个环境变量后运行,不行. 解决过程: 问题1:安装后javac命令运行时报错 jdk12'javac' ...

最新文章

  1. NServiceBus的安装与调试
  2. How to Use Git
  3. PIX525故障一例,求解
  4. fish工具_Python程序员使用哪些开发工具
  5. linux rm 某个时间以前,(转)linux的一个find命令配合rm删除某天前的文件
  6. 门户网站服务器迁移,云服务器怎么迁移网站
  7. linux——两个客户端之间实现聊天(TCP、单线程)
  8. css3鼠标悬停图片抖动效果
  9. 个人作业——软件工程实践总结作业
  10. 贴片电阻的功率与封装对照表
  11. aka名字_想给Aka征集一个中文名字
  12. 黑白图,灰度图,彩色图的理解
  13. mysql 多表中间表查询_mysql多表连接查询
  14. Open-Vocabulary Object Detection Using Captions(2021 CVPR)----论文解读
  15. 【XSY2498】贪吃蛇(bfs/dfs)
  16. 40个Unity游戏开发小阴招
  17. 中乾文化,如何树立正确的财富观?
  18. python爬取虾米音乐_Python 爬取 620 首虾米歌曲,揭秘五月天为什么狂吸粉?!
  19. 开源工程ffdshow
  20. 八数码问题的广度优先搜索方法

热门文章

  1. mysql 5.7.15-winx64_mysql 5.7.15 winx64安装配置方法
  2. 产业互联网,一次从需求侧向供给侧的自我嬗变
  3. java 中文转成_Java实现汉字转换为拼音 [转]
  4. Android短彩信源码解析-短信发送流程(一)
  5. delphi 实现虚拟打印, 远程集中打印
  6. 纯css制作遮罩层特效
  7. 如何在Excel中启用宏?
  8. 有关excel中宏的使用问题
  9. python accessiblechildren用法_python类继承用法实例分析
  10. 从被遗忘到牛市龙头,一文梳理ETH 2020爆发逻辑