Dado seu comentário, sugiro algo assim:
while read -r line
do
echo "$line" > sh scriptname.sh &
done < "$file"
wait
Eu configurei a autenticação baseada em chave para acessar todas as máquinas do meu cliente usando o ssh. No entanto, se eu executar anyscript nesses clientes e supor que, se determinados hosts estiverem inativos, o terminal trava nessa sessão e levará muito tempo para ir para os próximos hosts. Existe alguma outra maneira de resolver este problema? Ou é possível pular o host que está desativado para que ele possa ir com o próximo host? Eu estou usando o Ubuntu 11.04. Alguém pode me ajudar? Agradecemos antecipadamente.
Dado seu comentário, sugiro algo assim:
while read -r line
do
echo "$line" > sh scriptname.sh &
done < "$file"
wait
A resposta do @ queueoverflow está correta, mas eu achei desnecessariamente complicado. Talvez isso seja mais fácil de ler?
ssh server1 do something &
ssh server2 do something at the same time &
ssh server3 do yet more things &
wait
O &
significa iniciá-lo em segundo plano e wait
significa travar até que todas as tarefas em segundo plano tenham sido encerradas. Todas as tarefas serão executadas em paralelo, e todo o processo deve levar o tempo da tarefa mais longa, e não mais.