Você pode fazer algo como:
while IFS= read -r line; do
if [[ ${line} =~ ^server\d+$ ]] ; then
server=${line}
continue
fi
ssh ${server} "echo ${line}"
done
Assumindo que o formato do seu arquivo não seja alterado.
Gostaria de saber qual é a melhor maneira de conseguir isso:
Eu tenho um arquivo com os dados abaixo:
server1
chl(abc.123) chltype(RCVR)
chl(xyz.123) chltype(RCVR)
server2
chl(abc.000) chltype(RCVR)
chl(abc.999) chltype(RCVR)
chl(xyz.456) chltype(RCVR)
Agora quero executar um script que faça isso.
ssh para o servidor 1 e execute os seguintes comandos para aqueles listados no servidor 1, em seguida, ssh para o servidor 2 e execute os comandos para aqueles listados em server2
por exemplo, no servidor 1
echo chl(abc.123) chltype(RCVR)
Você pode fazer algo como:
while IFS= read -r line; do
if [[ ${line} =~ ^server\d+$ ]] ; then
server=${line}
continue
fi
ssh ${server} "echo ${line}"
done
Assumindo que o formato do seu arquivo não seja alterado.
Tags shell-script