ejecutar script cuando la interfaz de red esté activa

ejecutar script cuando la interfaz de red esté activa

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: |con, no necesita más, awkpuede hacer todo el procesamiento.

información relacionada