1. ホーム
  2. bash

[解決済み] bashで、標準エラーを別のプロセスにパイプする方法は?

2022-04-26 12:18:18

質問

あるプロセスの標準出力を別のプロセスの標準入力にパイプする方法はよく知られています。

proc1 | proc2

しかし、proc1 の標準エラーを proc2 に送り、標準出力は現在の場所に行ったままにしておきたい場合はどうでしょうか。あなたは次のように考えるでしょう。 bash のようなコマンドがあるはずだ。

proc1 2| proc2

しかし、残念なことに、ありません。何か方法はないでしょうか?

解決方法は?

また プロセス代替 . これは、プロセスをファイルの代わりにするものです。

を送信することができます。 stderr を次のようにファイルに書き出します。

process1 2> file

しかし、次のようにプロセスをファイルの代わりにすることができます。

process1 2> >(process2)

を送信する具体例です。 stderr を画面の両方に表示し、ログファイルに追記します。

sh myscript 2> >(tee -a errlog)