GNU/Linux >> Linux の 問題 >  >> Linux

出力が stdout か stderr かを判別する

プログラムが何を STDOUT に出力し、何を STDERR に出力するかを決定する方法は、私が知っている 3 つだけです

<オール>
  • ドキュメントを読んでください。または

  • リダイレクトを試す†

  • STDERR を赤で表示

  • †例:

    program > program.stdout 2> program.stderr

    次に、2 つの出力ファイルを見て、プログラムが STDOUT に書き込んだ内容と STDERR に書き込んだ内容を確認します。

    リダイレクトの代わりに tee にパイプできます 画面だけでなくファイルにも出力を続ける必要がある場合。 https://stackoverflow.com/q/692000/477035 を参照してください


    コメントされたリクエストに基づいて:

    { { command; } 2>&3 | sed 's/^/STDOUT: /'; } 3>&1 1>&2 | sed 's/^/STDERR: /'
    

    Linux
    1. StdoutとStdinを接続することの意味は何ですか?

    2. コマンドまたはシェルスクリプトの出力がStdoutまたはStderrであるかどうかを確認する方法は?

    3. 進捗レポート/ログ情報はStderrまたはStdoutに属しますか?

    1. 画面にStderrのみを表示しますが、StdoutとStderrの両方をファイルに書き込みますか?

    2. XTerm または Konsole で stdout と stderr の出力を異なる色にすることはできますか?

    3. オンザフライ出力リダイレクト、プログラムの実行中にファイルリダイレクト出力を確認

    1. すべての出力を Bash のファイルにリダイレクトします

    2. stdout と stderr の両方にエコーする

    3. シェル プログラムで相対パスか絶対パスかを判断する