У меня есть сканирование скриптов через файл, каждая строка - имя хоста удаленного узла.Почему SSH прерывает поток управления в Bash
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
и гравюр только @node1
(без @node2
и `@node3
).
Я спрашиваю, что произошло за сценой (это похоже на неопределенное поведение)? И как реализовать одну и ту же функциональность, не нарушая цикл while.
Try 'SSH -n $ выравнивать 'JPS';' –