基本的にインタプリタであるおもちゃの対話型コンソール プログラムを作成しました。
$ 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
したがって、上記のセッションは通常どおり端末に表示されますが、ログ ファイルにも複製されます。
これを行うより良い方法はありますか?ログ ファイルを 2 回書き込まなければならないことや、このコマンドを実行する前に忘れずに消去しなければならないことが気に入りません。