네트워크 인터페이스가 작동 중일 때 스크립트 실행

네트워크 인터페이스가 작동 중일 때 스크립트 실행

나는이 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

보시다시피 저는 파이프 하나만 사용합니다 |., 더 이상 필요하지 않으며 awk전체 처리를 수행할 수 있습니다.

관련 정보