У меня есть этот кусок скрипта bash:
internal = $ (/ sbin / ifconfig $ adapter | grep "inet addr" | awk -F: '{print $ 2}' | awk ' {print $ 1} ')
blockquote>$ adaptor = "eth0" Я хочу выполнить это, пока внутреннее значение не будет правильным, и после этого я хочу перейти к остальной части моего сценария. У вас есть какие-либо Идеи, как я мог бы справиться с этим?
После этого у меня есть код для отправки IP через смс!
Заранее спасибо.
Попробуйте сделать это:
#!/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 , больше ничего не нужно, awk
может сделать все обработка.