Что не так в этом скрипте bash?

По какой-то причине этот скрипт (запущенный на RHEL v6.9) обрабатывает только первую строку в файле хоста

#!/bin/bash process() { ssh $host ls } while IFS= read -r host do echo "Running $host" process echo "DONE $host" done < host_file #-------End of Script----------------- $ cat host_file server1 server2 

One Solution collect form web for “Что не так в этом скрипте bash?”

SSH захлебнется остальной частью стандартного ввода. Используйте другой дескриптор файла для цикла while-read:

 while IFS= read -u4 -r host do echo "Running $host" process echo "DONE $host" done 4< host_file 
  • Как сделать параллельное ssh прекратить запрос пароля?
  • Нельзя использовать ключ OpenPGP, экспортированный из GnuPG с SSH
  • sshd сбрасывает соединения на другом порту
  • Как я могу обновить PATH при использовании ожидания в сценарии bash?
  • Получение Dropbox для синхронизации по SSH
  • Подключение SFTP через другой сервер
  • SFTP, SSH Не удалось прочитать пакет: Сброс соединения с помощью peer
  • Найти, какие порты доступа к программе
  • Rsync только новые файлы с удаленного сервера
  • ошибка libvirt-bin на виртуальной машине при попытке указать VM
  • Включить ssh root login
  • ProxyCommand без перенаправления SOCAT, nc или Bash TCP?
  • Linux и Unix - лучшая ОС в мире.