Как действительно Управляет заменой, роют и работа +short в рамках этого сценария?

Мог кто-то объяснять как dig и +short работа в рамках этого сценария и почему они используются? Также мог кто-то объяснять, как замена команды работает в рамках кода, поскольку я изо всех сил пытаюсь понять, как замена команды работает.

Сценарий:

#!/bin/bash
echo "Enter web address : "
read address
echo "Entered web address : $address"
nslookup "$address"
ping -c 4 $(dig +short "$address" | head -1)

Используемый сценарий:

Enter web address : 
gutenberg.org

Entered web address : gutenberg.org
Server:     127.0.1.1
Address:    127.0.1.1#53

Non-authoritative answer:
Name:   gutenberg.org
Address: 152.19.134.47

PING 152.19.134.47 (152.19.134.47) 56(84) bytes of data.
64 bytes from 152.19.134.47: icmp_seq=1 ttl=47 time=118 ms
64 bytes from 152.19.134.47: icmp_seq=2 ttl=47 time=165 ms
64 bytes from 152.19.134.47: icmp_seq=3 ttl=47 time=116 ms
64 bytes from 152.19.134.47: icmp_seq=4 ttl=47 time=111 ms

--- 152.19.134.47 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3001ms
rtt min/avg/max/mdev = 111.326/127.824/165.079/21.675 ms
enter code here
enter code here
1
задан 8 January 2019 в 18:56

2 ответа

Таким образом, мы проводим эту строку из сценария:

ping -c 4 $(dig +short "$address" | head -1)

Оболочка будет разбивать его для пробела, заменять переменной и затем видеть, что это должно выполнить команду в $() сначала. Таким образом, это должно выполнить это сначала:

dig +short "$address" | head -1

Двойные кавычки вокруг $address не строго необходимы, но они - хорошая привычка войти в случае, если Ваши данные заканчиваются с пробелами в ней, оболочка не разделит ее для Вас.

Таким образом, если я делаю это с $address="yahoo.com"....

$ dig +short yahoo.com | head -1
72.30.35.10

С 72.30.35.10 как вывод конвейера в замене команды строка от вершины становится

ping -c 4 72.30.35.10

который проверяет с помощью ping-запросов IP только 4 раза прежде, чем выйти, поскольку Вы испытали при попытке его. Иначе ping работал бы, пока Вы не поражаете ctrl-c.

1
ответ дан 7 December 2019 в 15:09

ping -c 4 : 4 шага

head -1 : шоу только первая строка вывода

выройте шоу +short только "A" Запись

mirek@Mirek-nuc:~$ dig yahoo.com +short
72.30.35.9
98.137.246.7
72.30.35.10
98.138.219.231
98.138.219.232
98.137.246.8
0
ответ дан 7 December 2019 в 15:09

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

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