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