0

我的 stippt 中有下一个带有 while 循环的代码:

TMP_FILE=`mktemp`
some_script.sh | grep aa > $TMP_FILE 
while read i
   do
      echo $i
      number=`ssh somehost cat somefile | grep 11 `  
      echo $number
   done < $TMP_FILE

TMP_FILE 的内容如下所示:

hostname1 AB_CDEF_JH10
hostname2 BC_DEF_JK19
...

在这种情况下,脚本仅在一次循环中正常工作,从 TMP_FILE 中获取第一行。之后,脚本退出。有什么想法为什么它不想处理除第一行之外的其他行吗?

4

1 回答 1

3

尝试传递-n选项以ssh防止它从标准输入读取。

默认情况下,ssh从标准输入(在本例中是您的文件)读取并将其转发到远程主机上运行的命令的标准输入。结果,您的整个文件被消耗,ssh循环只执行一次!

于 2012-09-25T10:28:02.150 回答