• 締切済み

teeコマンドを使わずにUNIXで標準出力とエラー出力を、ファイルと標準出力の両方に出すには?

UNIX系のBシェルで、 コマンドを実行して、 その標準出力とエラー出力をログファイルに出力し、 かつ、同じものを標準出力にも出力したいのです。 また、その後でコマンドの戻り値$?をエラーチェックしたいです。 このため、パイプでteeコマンドを使用すると戻り値が上書きされてしまいます。 いったん一時ファイルに出力するしかないのでしょうか?

みんなの回答

  • a-saitoh
  • ベストアンサー率30% (524/1722)
回答No.3

#2です。 コマンドの出力を一次ファイルに入れないようにすると、かわりに 終了状態のほうを一旦ファイルにしまう方式しか思いつきません。

  • a-saitoh
  • ベストアンサー率30% (524/1722)
回答No.2

$?をチェックして、何をしたいのでしょうか? それによっては、対処法があるかも。

abspectra
質問者

補足

$?では、コマンドの戻り値が0以外であればそこでexitするというスクリプトを作成しています。

  • chirubou
  • ベストアンサー率37% (189/502)
回答No.1

ファイルに出力しておいて、別なシェル等から tail -f <ファイル名>で見る、というのではダメかしら?

abspectra
質問者

補足

1行のコマンドで実現したいと考えています。 また、本来実行したいコマンドの戻り値を、$?あるいは他の変数に代入して、 コマンド終了後に戻り値を判断してエラーチェックを行います。

関連するQ&A