Seu regex está de alguma forma errado e a parte após &&
erra echo
.
Em vez de escrever regexs complexos para validar o hostname, considere fazer o oposto:
hostname=master01.naSsa.com
[[ $hostname =~ [A-Z] ]] && echo "hostname is not ok"
hostname is not ok
Ou
hostname=master01.nassa.com
[[ $hostname =~ [A-Z] ]] || echo "hostname is ok"
hostname is ok
Além disso, para evitar situações complexas, é melhor definir localidade como C ou posix usando LC_ALL=C
Consulte: Por que [AZ] corresponde a letras minúsculas no bash?