ファイルからstdout / stderrをキャプチャしますが、コンソールで表示を続ける方法は何ですか?

ファイルからstdout / stderrをキャプチャしますが、コンソールで表示を続ける方法は何ですか?

Amazon Linuxでbashスクリプトを使用しています。 stderrとstdoutを実行できるファイルにリダイレクトする場合

./my_process.pl &>/tmp/out.txt

この出力をファイルにリダイレクトし、コンソール(私のシェル)で引き続き表示する方法はありますか?あなたはそうしなかった方法?

答え1

はい、以下を使用できますtee

/my_process.pl 2>&1 | tee /tmp/out.txt

標準出力と標準エラーをファイルにリダイレクトすることは、&>file一部のシェルで許可されるPOSIX標準の拡張です。使用する方が安全です>file 2>&1。この場合、&>ファイルにリダイレクトしないため、まったく機能しません。

以下でもbashこれを行うことができます。

/my_process.pl |& tee /tmp/out.txt

これは上記と同じです。 in ksh93|&何かを表現する完全違うけど。

答え2

コマンドを使用すると、と呼ばれるscriptファイルが保存されます。stdinstdouttypescript

関連情報