O motivo da falha é que o arquivo /etc/squid3/squid.conf
contém mais de uma linha correspondente ao padrão. Então quando você faz
ping "$(grep ....)"
todas as correspondências separadas por nova linha estão sendo passadas como um único argumento para ping
, o que leva apenas um único endereço de cada vez como argumento, portanto, está falhando.
Note que, em vez de usar o padrão Regex que você usou, você pode simplificar a correspondência da última palavra usando:
grep -o 'dc[^ ]\+$' /etc/squid3/squid.conf
assumindo que a palavra comece com dc
.
Finalmente, como você tem vários endereços para executar ping
over, você deve usar um loop:
for i in $(grep -o 'dc[^ ]\+$' /etc/squid3/squid.conf); do ping -c 4 "$i"; done
ping -c 4
enviará 4 pacotes ICMP Echo_Request para cada destino.