我有以下脚本扫描文件,每一行都是远程节点的主机名。
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
循环将在第一次调用sshand 后中断,并且只打印@node1(没有@node2and `@node3)。
我在问幕后发生了什么(看起来像是未定义的行为)?以及如何在不破坏 while 循环的情况下实现相同的功能。