ssh vai sugar o resto do stdin. Use um descritor de arquivo diferente para o loop while-read:
while IFS= read -u4 -r host
do
echo "Running $host"
process
echo "DONE $host"
done 4< host_file
Por algum motivo, esse script (executado no RHEL v6.9) processa apenas a primeira linha no host_file
#!/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
ssh vai sugar o resto do stdin. Use um descritor de arquivo diferente para o loop while-read:
while IFS= read -u4 -r host
do
echo "Running $host"
process
echo "DONE $host"
done 4< host_file