Как контролировать буферизацию труб в сценариях bash?

Мне нужно, чтобы мой скрипт исполнялся с помощью stdbuf -i0 -o0 -e0 иначе пользователь будет задаваться вопросом, почему нет выхода (из-за буфера канала). Как я могу получить его?

 #!/usr/bin/stdbuf -i0 -o0 -e0 /bin/bash 

приводит к

 /usr/bin/stdbuf: invalid mode '0 -o0 -e0 /bin/bash' 

  • Как удалить значения $ VAR2 из $ VAR1 и вывести оставшиеся значения в $ VAR3?
  • В чем разница между * и *. * При копировании?
  • Разница между find ~ и find *
  • Список файлов с меткой времени с эпохи
  • $ 2 (ссылка на поле) в awk BEGIN не работает
  • Используйте #! / Bin / sh или #! / Bin / bash для совместимости с Ubuntu-OSX и простоты использования и POSIX
  • ssh не показывает полный вывод команды
  • Предотвращение scp и менее команд, читающих интерактивный скрипт tcsh
  • 2 Solutions collect form web for “Как контролировать буферизацию труб в сценариях bash?”

    Обычно нет необходимости отключать весь скрипт. Это необходимо только для определенных программ.

    Но если вы хотите сделать это так, вы можете просто вызвать скрипт из себя:

     #! /bin/bash if [ yes != "$STDBUF" ]; then STDBUF=yes /usr/bin/stdbuf -i0 -o0 -e0 "$0" exit $? fi 

    Появляется два субоптимальных решения:

    Субоптимально, по крайней мере, когда вы вводите команду в команду. В противном случае они могут быть оба в порядке. script записывает ваш вход и unbuffer просто не позволяет вам вводить правильно. YMMV

    Linux и Unix - лучшая ОС в мире.