У меня была аналогичная проблема, и добавление следующего к параметрам ядра решило проблему:
acpi_osi= acpi_backlight=vendor
Однозначный ответ: буферизация строк . Вы можете продемонстрировать это с помощью ping -c 3
вместо простого ping
, где весь вывод производится только после завершения первой команды.
В качестве обходного пути с GNU grep
вы можете уменьшить два фильтра до одного
ping 192.168.0.1 | grep -oP '[[:digit:].]+(?= ms)'
Или, если вы действительно хотите использовать два фильтра, вам подойдет либо grep --line-buffered...
, либо stdbuf -oL grep...
.
Я думаю, что ваша проблема вызвана буферизацией строк в вашей оболочке.
Если вы позволите вашей команде выполняться достаточно долго, вы должны увидеть некоторые выходные данные.
Или просто ограничьте количество пингов вот так:
$ ping -c4 192.168.0.1 | grep -o '[^ =]* ms' | grep -o '^[^ ]*'
Есть еще информация и обходные (решения? )если вы перейдете по этой ссылке