• 締切済み

UNIX teeコマンドについて

あるテストプログラムの実行結果をteeコマンドで、ログに追加出力しようとしています 以下の1.変更前の様にシェルスクリプトを作成しました。 このシェルスクリプトを実行するとteeコマンドが正常終了するので $? が常に0になってしまい、必ずOKになってしまいます 急いでいたので2.のように修正したのですが、テンプファイルを使わないでもうちょっとシンプルに作成する方法をご存知の方教えてください 1.変更前 ./testpgm | tee -a logfile.txt  if [ $? -eq 0 ] ; then  echo "OK,testpgm," | tee -a logfile.txt else echo "NG,testpgm," | tee -a logfile.txt fi 2.変更後 ./testpgm > tempfile.txt if [ $? -eq 0 ] ; then cat tempfile.txt>>logfile.txt cat tempfile.txt echo "OK,testpgm," | tee -a logfile.txt else cat tempfile.txt>>logfile.txt cat tempfile.txt echo "NG,testpgm," | tee -a logfile.txt fi rm tempfile.txt OSはAIXで、シェルはshのみ使用可です

みんなの回答

  • splwtr
  • ベストアンサー率16% (75/461)
回答No.2

tee でなく script はどうでしょうか? テストプログラムのteeは取り除き。 $ script log $ <テストプログラム> : <何らかの出力> $ exit で、ログが log に入ってます。

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

ちゃんと動作するかどうか未検証ですが、 ( if ./testpgm ; then  echo "OK,testpgm," else echo "NG,testpgm," fi ) 2>&1 | tee -a logfile.txt

関連するQ&A