Primeiro, você esqueceu o espaço e as citações. Em seguida, é um erro, então você deve pegar stderr. Finalmente localhosts
é provavelmente $1
.
if [ "$(ping -c1 "$1" 2>&1)" = "ping: unknown host $1" ]
Note que a mensagem ping
está provavelmente sujeita às suas configurações de localidade. Se você quiser apenas testar a resolução de nomes de um host, ping
não é exatamente a ferramenta certa. Tente isso:
if getent hosts "$1" > /dev/null; then ...