No seu código, stdin
proveniente do arquivo results
é atribuído a while read ...
e a ssh
(em s1
, s2
e s3
). ssh
irá comer o que não foi lido por read
no primeiro loop.
Tente salvar stdin
antes do loop para uso posterior com ssh:
exec {stdin}<&0
while read choice
do
case $choice in
Server1) s1 <&$stdin ;;
Server2) s2 <&$stdin ;;
Server3) s3 <&$stdin ;;
esac
done < results
Ou use < /dev/null
se você não precisar de stdin em ssh
.