Вы можете использовать tcpdump -n icmp
для фильтрации запросов ping и ответов. Я добавил переключатель -n
, чтобы предотвратить поиск имени. У вас может быть несколько интерфейсов на вашем хосте, поэтому может потребоваться добавить переключатель -i ethX
, чтобы указать правильный интерфейс.
Обратите внимание, что фильтр - в данном случае icmp - должен быть последней частью команды.
Честно говоря, я думаю, что | grep ''
просто отлично. Вы уже использовали кучу программ в конвейере, так что не помешает еще одна. И вы уже знаете, что делает grep
, так что нет никакой отладки в отношении написания какого-то «умного» фрагмента оболочки для этого.
В комментариях упоминается также | grep.
, что может быть еще одной возможностью. grep.
не соответствует пустой строке, grep ''
соответствует, поэтому выбирайте в зависимости от того, какой из них вы хотите.
Тем не менее, использование grep
таким образом может быть неочевидным для случайного читателя, поэтому в любом случае вы можете добавить комментарий о его назначении.
Я думаю, это должно сработать:
[ -n "$(command | tee /dev/tty)" ]
tee
отправит вывод command
как на стандартный вывод (, где он оценивается командой test
), так и на ваш терминал (/dev/tty
), чтобы вы могли видеть вывод, не записывая его в переменную.
Насколько я знаю, это POSIX -совместимое решение.