выполнить скрипт, когда сетевой интерфейс включен

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

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

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

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

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

2
задан 3 April 2013 в 02:21

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 может сделать все обработка.

0
ответ дан 3 April 2013 в 02:21

Другие вопросы по тегам:

Похожие вопросы: