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.