現象:
正常情況下while的輸入如下:
[oldboy@daiqingyangs ~]$ seq 4|while read line;do echo $line;done
1
2
3
4
當在while中加入ssh後,while中的輸入就被吃掉了,如下:
[oldboy@daiqingyangs ~]$ seq 4|while read line;do ssh localhost -p 52113 echo $line ;done
原因:
while中使用重定向機制,輸入資訊在循環開始就已經讀入并重定向給了整個while語句,當readd讀完一行後,接着執行的ssh指令時,ssh正好也會讀取sdin的内容,是以就把剩下的輸入一并讀走了。