Синтаксис замены команды Bash (чтобы сценарий определил мой глобальный IP),

Я плохо знаком со сценариями, и я застреваю. Я должен преобразовать это:

MYIP=`ifconfig eth0 | grep 'inet addr'| awk '{print $2}' | cut -d ':' -f 2`;

В это:

MYIP=curl -s checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.*$//'

Я "делаю" сценарий, который пошлет мне электронное письмо каждый раз, когда мои внешние изменения IP. Я соединяю его от остатков, которые я нахожу в сети, но я не могу заставить это работать. Первый код просто отправляет мне уведомление с моим внутренним IP.

Вторая часть кода для определения моего глобального IP, но это, кажется, не работает. Я получаю сообщение об ошибке:

./filename.sh: line 5: -s: command not found

(строка 5 является второй частью сценария, отправленного выше),

Помогите мне решить последнюю часть в загадке..Спасибо.

1
задан 16 February 2016 в 22:47

3 ответа

Вам нужен Bash замена команды в обеих строках.

MYIP=$(ifconfig eth0 | grep 'inet addr'| awk '{print $2}' | cut -d ':' -f 2)
MYIP=$(curl -s checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.*$//')

Вы уже использовали ` ... ` синтаксис замены команды в Вашей первой строке, но $( ... ) синтаксис обычно рекомендуется по тому.

можно продолжать читать о двух синтаксисах Bash замены команды там:
http://wiki.bash-hackers.org/syntax/expansion/cmdsubst

1
ответ дан 7 December 2019 в 16:01

В дополнение к тому, что уже заявил ByteCommander, Вам не нужна такая передача по каналу. Просто позвольте curl, дают вывод awk, и он может обработать задание. Вы могли или использовать один канал или bash замена процесса. Я использовал последний один

 awk -F ':' '{print "Current IP:"substr($2,0,14)}' < <(curl -s checkip.dyndns.org)
0
ответ дан 7 December 2019 в 16:01

Другой простой способ получить Ваш текущий глобальный IP, не имея необходимость снимать любые дополнительные символы с awk или sed или что-либо с dig:

dig +short myip.opendns.com @resolver1.opendns.com

, Который возвратит только Ваш IP.

0
ответ дан 7 December 2019 в 16:01

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

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