Usar \$HOSTNAME
é a maneira correta de escapar da variável nesse caso.
No entanto, essa variável geralmente contém o nome do host (não-fqdn) ou pode não ser preenchida. Você deve preferir usar o comando hostname -f
para obter o FQDN do seu servidor.
Eu não sei como será o seu script final, mas conectando-se a server1
e, em seguida, verifique se esse servidor é server1
pode ser algum tipo de inútil (fora do propósito de segurança).
Você pode escrever alguns scripts, por exemplo script1.sh
contendo
echo "$HOSTNAME / $(hostname -f)"
então
for i in ${ARRAY1[@]};do
case $i in
server1) ssh $i < script1.sh
;;
server2) ssh $i < script2.sh
;;
*) ssh $i < script_${i}.sh
esac
done
EDITAR: Conforme declarado nos comentários, a versão enviada do OpenBSD da opção hostname
não entende -f
. O comportamento padrão é exibir o FQDN.