Tengo este fragmento de script bash:
interno=$(/sbin/ifconfig $adapter | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}')
$adapter="eth0" Quiero ejecutar esto hasta que interno tenga el valor correcto y luego quiero ir al resto de mi script. ¿Tiene alguna idea de cómo podría lidiar con eso?
¡Después de eso, lo codifiqué para enviar la IP por SMS!
Gracias de antemano.
Respuesta1
Intenta hacer esto:
#!/bin/bash
PATH+=/sbin
adapter=eth0
internal=""
until [[ $internal =~ [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} ]]; do
sleep 1
internal=$(
ifconfig "$adapter" |
awk -F'(inet add?r:| +|:)' '/inet add?r/{print $3}'
)
done
# send sms
Como puedes ver, uso solo un tubo: |
conawk, no necesita más, awk
puede hacer todo el procesamiento.