выполнить скрипт при включенном сетевом интерфейсе

выполнить скрипт при включенном сетевом интерфейсе

У меня есть этот фрагмент bash-скрипта:

внутренний=$(/sbin/ifconfig $adapter | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}')

$adapter="eth0" Я хочу выполнять это до тех пор, пока внутренний параметр не будет иметь правильное значение, а после этого я хочу перейти к остальной части моего скрипта. Есть ли у вас какие-нибудь идеи, как с этим справиться?

После этого я закодировал его для отправки IP через смс!

Заранее спасибо.

решение1

Попробуйте сделать это:

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

Как вы видите, я использую только одну трубку: |с, больше не нужно, awkможно выполнить всю обработку.

Связанный контент