Para extrair o ip você pode usar o awk por exemplo:
ptr='host $hostname | awk '/has address/ {print $NF}''
-
/ has address / mach apenas a linha que possui essa string, já que o host pode retornar muito mais para você. Tente o google por exemplo.
-
print $ NF - NF é a variável do awk que retorna o número de campos, então $ NF aponta para o último campo.
Em seguida, você pode usar o grep e verificar seu código de retorno (o sed retornará 0 regardles se ele encontrar o seu regexp ou não. Então, fazer algo assim funcionaria:
echo $ptr | egrep "your pattern"
if [ $? -eq 0 ]; then
echo "This Works"
fi
Mas você pode simplesmente verificar se $ ptr contém uma saída. Se o comando do host não encontrar nada, $ ptr estará vazio, então:
if [ -n $ptr ]; then
echo "Works"
else
echo "Not found :("
fi
Dê uma olhada no man test :
-n STRING
the length of STRING is nonzero
-z STRING
the length of STRING is zero