Skip to content

Отключение буферизации вывода

Некоторые команды, например, 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

bash