Skript ausführen, wenn die Netzwerkschnittstelle aktiv ist

Skript ausführen, wenn die Netzwerkschnittstelle aktiv ist

ich habe dieses Stück Bash-Skript:

intern=$(/sbin/ifconfig $adapter | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}')

$adapter="eth0" ich möchte dies ausführen, bis intern der richtige Wert ist, und danach möchte ich mit dem Rest meines Skripts fortfahren. Haben Sie eine Idee, wie ich damit umgehen könnte?

Anschließend habe ich es codiert, um die IP per SMS zu versenden!

Vielen Dank im Voraus.

Antwort1

Versuchen Sie Folgendes:

#!/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

Wie Sie sehen, verwende ich nur eine Pfeife: |mit, mehr ist nicht nötig, awkich kann die gesamte Verarbeitung durchführen.

verwandte Informationen