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: |
mitawk, mehr ist nicht nötig, awk
ich kann die gesamte Verarbeitung durchführen.