您的位置:首页 > 运维架构 > Shell

shell脚本,在循环体中执行ssh命令的问题

2016-07-14 19:11 441 查看
cat ./file.txt | grep -v "^#" | while read  IP IQ
do

ssh  tomcat@$IP ...

..

done


上述代码,当file.txt中的内容超过了2行,那么问题就出现了,第二行的内容并不会读出来。

原因以及解释如下:(来自网络)

在while循环中ssh中断的问题
解决方案: ssh -n    

其中-n 于 </dev/null 功能相同,由于ssh 命令会可能等待输入,会导致read的时候出问题。
http://bbs.chinaunix.net/thread-3582099-1-1.html
关于while read只执行一次的问题

Q:下面的代码为何只执行了一次就退出了?

seq 10 >file

while read a

do

echo $a

dd &>/dev/null

done <file

A:因为重定向是针对整个while循环块的,而不只是read命令

请参看下面的链接
http://bbs.chinaunix.net/viewthread.php?tid=769040
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: