Как я могу получить результат и проверить команду dig?

когда мы вводим команду «dig + short www.example.com», мы получаем что-то вроде этого:

www.example.com. 192.168.1.1 192.168.1.2 192.168.1.3 

Я хочу получить первый адрес и проверить его, если это то, что я хочу (192.168.1.1)

Как я могу получить вывод этой команды, особенно вторую строку, используя сценарий оболочки?

2 Solutions collect form web for “Как я могу получить результат и проверить команду dig?”

Что-то вроде этого будет делать:

 $ dig +short www.google.com | head -1 74.125.225.113 

Но будьте осторожны, потому что большинство серверов, которые имеют несколько IP-адресов, будут делать какую-то форму циклического уровня на уровне DNS, поэтому список обычно вращается каждый раз, когда вы запускаете команду dig :

 $ dig +short www.google.com 74.125.225.116 74.125.225.112 74.125.225.113 74.125.225.114 74.125.225.115 $ dig +short www.google.com 74.125.225.115 74.125.225.116 74.125.225.112 74.125.225.113 74.125.225.114 $ dig +short www.google.com 74.125.225.114 74.125.225.115 74.125.225.116 74.125.225.112 74.125.225.113 

Обратите внимание, как IP-адреса перемещаются из запроса в запрос? Это делается для балансировки нагрузки между этими серверами.

Захват IP в переменную

Следующая команда захватит вывод IP-адреса и поместит его в переменную оболочки.

 $ IP=$(dig +short www.google.com | head -1) 

Вы можете подтвердить это так:

 $ echo $IP 74.125.225.114 

Ну вот

 dig +short www.example.com | sed -n '2{p;q}' 

-n запрещает sed печатать свои данные по умолчанию. 2 заставляет его выполнить p;q на строке номер 2. p означает печать и q для выхода

  • Определить текущее имя оболочки
  • Разница между скобками и фигурными скобками в терминале?
  • Файл сценария Unix Shell предыдущего месяца
  • Выполнить команду, которая была отображена на экране в виде сообщения
  • Как я могу правильно ввести имя входного файла в find exec?
  • Что означает $ {1 + "$ @"} в сценарии оболочки и как он отличается от «$ @»?
  • Является ли вилка оболочки, когда я использую встроенные команды?
  • Как отключить трассировки bash?
  • Сообщение об ошибке на терминале, несмотря на использование символа 2>
  • Как вызвать функцию case
  • Эквивалент cmd "for" в bash?
  • Linux и Unix - лучшая ОС в мире.