while和ssh连用的误区
博客专区 > perofu 的博客 > 博客详情
while和ssh连用的误区
perofu 发表于3年前
while和ssh连用的误区
  • 发表于 3年前
  • 阅读 519
  • 收藏 4
  • 点赞 0
  • 评论 1

腾讯云 新注册用户 域名抢购1元起>>>   

摘要: 今天听到同事,说了while和ssh连用的从定向问题,然后baidu了下,特此总结。 详见:http://blog.csdn.net/shrekmu/article/details/2513177

 

         今天听到同事,说了whilessh连用的从定向问题,然后baidu了下,特此总结。

详见:http://blog.csdn.net/shrekmu/article/details/2513177

 

         for循环中,没有此问题。

 

         原因:while循环中,使用了重定向机制,被读取文件中的信息都已经读入并重定向给了整个while语句。所以当我们在while循环中再一次调用read语句,就会读取到下一条记录。问题就出在这里,ssh语句正好读取输入的所有信息

 

         解决办法:while循环中的ssh语句的最后,加上< /dev/null,即可。

格式:

cat file|while read LINE

do

      echo ********************************$LINE

      ssh  $LINE cat </dev/null

done

 

实例1:常见的错误

 

[root@ tmp]# cat date

172.21.34.20

172.21.34.23

172.21.34.22

 

[root@ tmp]# vi while_ssh.sh

 

#!/bin/bash

while read LINE

do

      echo ********************************$LINE

      ssh  $LINE cat

done < date

 

 

[root@ tmp]# sh -x while_ssh.sh

+ read LINE

+ echo   '********************************172.21.34.20'

********************************172.21.34.20

+ ssh -p 10060 172.21.34.20 cat

172.21.34.23

172.21.34.22

+ read LINE

 

 

实例2:解决办法

 

[root@   tmp]# cat date

172.21.34.20

172.21.34.23

172.21.34.22

 

[root@   tmp]# vi while_ssh.sh

 

#!/bin/bash

while   read LINE

do

    echo   ********************************$LINE

    ssh  $LINE cat </dev/null

done   < date

 

 

[root@   tmp]# sh -x while_ssh.sh   

+   read LINE

+   echo '********************************172.21.34.20'

********************************172.21.34.20

+ ssh   -p 10060 172.21.34.20 cat

+   read LINE

+   echo '********************************172.21.34.23'

********************************172.21.34.23

+ ssh   -p 10060 172.21.34.23 cat

+   read LINE

+   echo '********************************172.21.34.22'

********************************172.21.34.22

+ ssh   -p 10060 172.21.34.22 cat

+   read LINE


标签: while ssh
共有 人打赏支持
粉丝 125
博文 146
码字总数 129776
评论 (1)
perofu
今天测试while+nc到ssh端口,也是出现同样的问题,make:sweat_smile:
×
perofu
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: