ネットワークインターフェースが起動しているときにスクリプトを実行する

ネットワークインターフェースが起動しているときにスクリプトを実行する

次のような bash スクリプトがあります:

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

$adapter="eth0" 内部に正しい値が設定されるまでこれを実行し、その後スクリプトの残りの部分に移動したいのですが、これをどのように処理すればよいか、何かアイデアはありますか?

その後、SMS 経由で 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

ご覧のとおり、私はパイプを1つだけ使用しています|、それ以上の必要はありません、awk全体の処理を行うことができます。

関連情報