Я сделал игрушку интерактивную консольную программу, которая в основном переводчик:Конвейеризация интерактивный сеанс в файл
$ myprogram
> this is user input
this is program output
Я хочу трубы полный сеанс, как пользовательский ввод и программа вывода, в лог-файл , Я могу это сделать так:
$ cat | tee >(myprogram | tee -a file.log) >> file.log
> this is user input
this is program output
$ cat file.log
> this is user input
this is program output
Так выше сессия будет отображаться на терминале, как обычно, но также будет дублироваться в лог-файл.
Есть ли лучший способ сделать это? Мне не нравится, как я должен дважды записывать файл журнала, и как я должен помнить, чтобы стереть его, прежде чем запускать эту команду.
команду Тройник предназначен для перенаправления вывода в файл. В основном он копирует ваш вывод в файл, если вы пишете $ output | tee file.log будет копировать выходные данные в файл.log –