- 締切済み
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のみ使用可です
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- splwtr
- ベストアンサー率16% (75/461)
tee でなく script はどうでしょうか? テストプログラムのteeは取り除き。 $ script log $ <テストプログラム> : <何らかの出力> $ exit で、ログが log に入ってます。
- a-saitoh
- ベストアンサー率30% (524/1722)
ちゃんと動作するかどうか未検証ですが、 ( if ./testpgm ; then echo "OK,testpgm," else echo "NG,testpgm," fi ) 2>&1 | tee -a logfile.txt