Отключение буферизации вывода
Некоторые команды, например,
l2ping
буферизируют stdout, тем самым мешая использованию пайпов (перенаправлений вывода) засчет того, что вывод не перенаправляется в "live" режиме, а буферизируется и передается следующей команде только после выполнения/остановки команды.
Отключить stdout buffering для конкретной команды можно с помощью stdbuf
:
Bash
stdbuf --output=0 command
stdbuf -o 0 command
# можно отключить буфферизацию для всего (stdin, stdout, stderr)
stdbuf -i0 -o0 -e0 command
or w/ unbuffer
:
Bash
unbuffer l2ping
Еще о случаях использования в пайпах
Иногда может понадобится отключить и для следующей команды буфферизацию в пайпах:
Bash
unbuffer command | unbuffer other_command
Sauce: https://unix.stackexchange.com/a/25378