画面とファイルにリダイレクト

画面とファイルにリダイレクト

画面に印刷するだけでなく、実行したコマンドのすべての出力をファイルにリダイレクトしたいと思います。

tee私はこれが自動的に起こりたいので、毎回それを行う必要はありません。

私はそれを試しましたが、うまくexec | tee fileいきませんでした。どうすればいいですか?

これは Bash なので、それもPROMPT_COMMAND使えます。

答え1

次のことができます。

exec > >(tee logfile) 2>&1

これは、シェルの出力とエラーストリームをプロセス置換にリダイレクトして>(tee logfile)保存し、logfile同時に端末にも出力します。

ユーザーmosvyが正しく指摘したように、以下のコメント、すべてのプログラム出力は、まるでファイルにリダイレクトされるかのように生成されます。ユーティリティがファイルに出力するものと端末装置に出力するものが異なる場合、出力は期待したものとは異なります。端末を必要とする一部のプログラムはまったく実行されない場合があります。

scriptファイルに書き込む対話型シェルを独自に実行するこのユーティリティを使用することもできます。マニュアルを参照してくださいscript

関連情報