Przesyłanie sesji interaktywnej do pliku

Zrobiłem zabawny interaktywny program konsoli, który jest w zasadzie tłumaczem:

$ myprogram
> this is user input
this is program output

Chcę przenieść całą sesję, zarówno dane wejściowe użytkownika, jak i dane wyjściowe programu, do pliku dziennika. Mogę to zrobić tak:

$ 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

Tak więc powyższa sesja będzie wyświetlana na terminalu jak zwykle, ale zostanie również zduplikowana do pliku dziennika.

Czy jest lepszy sposób, aby to zrobić? Nie podoba mi się, jak muszę dwukrotnie zapisywać plik dziennika, ani jak muszę pamiętać, aby go wymazać przed uruchomieniem tego polecenia.

questionAnswers(4)

yourAnswerToTheQuestion