脚本中while循环下ssh注意事项

回复 收藏

最近在看一些同事之前写的脚本,发现有很多地方用

</dev/null 而不是 >/dev.null之类的

就一直在网上搜</dev/null的用法,费了半天劲,总算找到几个靠谱的答案

记录一下,留作纪念

http://blog.csdn.net/mgxcool/article/details/47136431

ssh命令导致shell退出

1. ssh命令在每次执行时,会读取所有的标准输入中的内容。

2. 对于while循环,当按照如下方式使用时:

    cat file | while read line

    这里使用重定向,将文件内容输入到while命令,while命令每次使用read从输入中读取一行数据。

问题就在这里,如果在while循环中调用了ssh命令,那么ssh就会把当前输入中所有的数据读走,也就是cat file重定向给while命令的数据,都被ssh命令读走了,以至于下次循环的时候,read读到的内容为空,导致循环提前结束。

解决这个问题两种方式

1. ssh -n 使用-n参数

2. ssh xxxx < /dev/null重定向shell命令的输入

2017-03-08 14:26 举报
已邀请:

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: