O que há de errado neste script bash? [duplicado]

0

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
    
por humility 31.08.2018 / 23:20

1 resposta

1

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 31.08.2018 / 23:36