アプリ版:「スタンプのみでお礼する」機能のリリースについて

あるテストプログラムの実行結果を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のみ使用可です

A 回答 (2件)

tee でなく script はどうでしょうか?


テストプログラムのteeは取り除き。

$ script log
$ <テストプログラム>
: <何らかの出力>
$ exit

で、ログが log に入ってます。
    • good
    • 0

ちゃんと動作するかどうか未検証ですが、



(
if ./testpgm ; then 
echo "OK,testpgm,"
else
echo "NG,testpgm,"
fi
) 2>&1 | tee -a logfile.txt
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!