首页 > 代码库 > wile read 与 ssh
wile read 与 ssh
一、代码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命令执行一次
wile read 与 ssh
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。