Обычно, если я хочу распечатать вывод команды и, кроме того, записать этот вывод в файл, tee - это решение. Но я создаю скрипт, используя утилиту, которая, похоже, имеет особое поведение. Это инструмент оценки беспроводной сети wps bully.Выход tee не появляется до завершения cmd
Если я запускаю команду хулигана как обычно (без тройника), выход отображается поэтапно. Но если я положу трубку в конец, чтобы зарегистрировать это как | tee "/path/to/my/logfile"
, выход на экране замерзает. Он ничего не показывает, пока команда не закончится. И после окончания, он показывает все в один снимок (не шаг за шагом), и, конечно, он также выводит вывод в файл журнала.
Пример команды хулигана: bully wlan0mon -b 00:11:22:33:44:55 -c 8 -L -F -B -v 3 -p 12345670 | tee /root/Desktop/log.txt
Почему? Не уверен, что это происходит только с хулиганом или если есть другие программы с одинаковым поведением.
Есть ли другой способ захвата вывода в файл с выходом на экране в реальном времени?
Возможная причина: bully изменяет буферизацию вывода на * полностью буферизованный *, когда stdout не подключен к терминалу (например, к трубе). – Jens
См. [Как сделать вывод любой команды оболочки без буфера?] (Http://stackoverflow.com/q/3465619/4154375). – pjh