j'ai ce morceau de script bash:
internal = $ (/ sbin/ifconfig $ adapter | grep "inet addr" | awk -F: '{print $ 2}' | awk '{print $ 1}')
$ adapter = "eth0" je veux l'exécuter jusqu'à ce que interne ait la valeur correcte et ensuite je veux aller au reste de mon script Avez-vous des idées sur la façon dont je pourrais gérer cela?
Après cela, je l'ai codé afin d'envoyer l'ip via sms!
Merci d'avance.
Essayez de faire ceci:
#!/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
Comme vous pouvez le voir, j'utilise un seul tube: |
avec awk , pas besoin de plus, awk
peut faire tout le traitement.