Почему результат этого цикла for и while отличается?

У меня есть цикл for:

for host in $(cat ./hosts) do echo -e "$host" ssh -o "StrictHostKeyChecking no" $host "uptime" 2>/dev/null echo -e "\n" done 

и цикл while, который предполагается для той же самой работы, что и выше для цикла:

 while read host do echo -e "$host" ssh -o "StrictHostKeyChecking no" $host "uptime" 2>/dev/null echo -e "\n" done <./hosts 

hosts – это файл, расположенный в том же месте, что и скрипты, содержащие цикл for и while, и содержит имя хоста удаленных серверов. Цикл for печатает ожидаемый результат (для всех узлов, перечисленных в файле hosts), но в случае цикла while он отображает только время uptime первого узла и завершает работу!

hosts содержит одно имя узла в строке.

Вопрос в том, почему поведение этих двух циклов различно?

One Solution collect form web for “Почему результат этого цикла for и while отличается?”

Проблема в том, что ssh читает со стандартного ввода, поэтому он ест все оставшиеся строки. Вы можете просто подключить его стандартный вход в никуда:

 $ ssh -o "StrictHostKeyChecking no" $host "uptime" 2>/dev/null < /dev/null 

Рекомендации

  • ssh вырывается из цикла while в bash
  • ssh частно-открытый ключ для клиента
  • Автоматически экспортировать переменную в каждый сеанс ssh
  • ошибка libvirt-bin на виртуальной машине при попытке указать VM
  • Как я могу запустить ssh-add автоматически, без подсказки пароля?
  • Настройка ssh - reboots x server
  • Если я использую туннель SSH для пересылки удаленного порта на локальный, и мой IP-адрес изменится, будет ли этот туннель работать еще?
  • Вызовите скрипт после отключения от сервера
  • Выполнять команды bash над SSH во время пребывания в интерактивном режиме
  • Как выполнять команды в пакетном режиме по ssh?
  • могу ли я настроить SSH, чтобы он не использовал шифрование?
  • ssh возвращает сообщение «Ошибка пересылки X11 не удалось на канале 1»
  • Interesting Posts

    Fedora 15 не будет помнить пароль беспроводной сети

    Есть ли способ получить багги-пакет для работы на debian stretch?

    Переместить с возможным переименованием

    Мощный способ выполнения команды / запуска скрипта при входе в систему?

    Существует ли решение P2P VPN, которое не требует открытия порта (пересылки)?

    Почему история не перезаписывается, а добавляется, когда значение histappend отключено в Bash?

    Сделать бесплатный запрос FreeRDP для имени пользователя и пароля?

    Работа Wi-Fi вкл. И выкл., В основном с ноутбука HP, – две

    создать прослушивающий порт на IPV6 БЕЗ netcat

    Как поговорить с geoclue через его интерфейс dbus?

    Влияние файловой системы на скорость флеш-накопителя?

    Есть ли способ узнать / указать, какие шрифты используются в pdf-файле?

    Удалять строки на основе дубликатов в одном столбце без сортировки

    Установка Linux идет на пустой экран

    Как просмотреть список ранее выполненных запросов MySQL в формате live feed?

    Linux и Unix - лучшая ОС в мире.