我有以下脚本扫描文件,每一行都是远程节点的主机名。
echo -e "node1\nnode2\nnode3" > tempfile
while read aline; do
echo "@$aline";
done < tempfile
这会在三行中正确@node1
@node2
生成。@node3
但是当我ssh
在循环内添加时,如下
while read aline; do
echo "@$aline";
ssh $aline 'jps';
done < tempfile
循环将在第一次调用ssh
and 后中断,并且只打印@node1
(没有@node2
and `@node3
)。
我在问幕后发生了什么(看起来像是未定义的行为)?以及如何在不破坏 while 循环的情况下实现相同的功能。