tsucchi’s diary(元はてなダイアリー)

はてなダイアリー(d.hatena.ne.jp/tsucchi1022)から移行したものです

Makefile とパイプと tee

Makefileのルールでパイプを使ったときの振る舞い記述について教えて!! - よくきたはてダ

ようするにあるコマンドを実行し,実行結果ログをteeで取りたい.

でもteeを使うとteeの終了コードを参照するからか期待した結果にならない.

最近同じことで悩みました。「prove コマンドで、log をとりつつ失敗したら終了」みたいなことがやりたくて、最初 tee を使っていたのだけど、うまくいかず。。。

で、オイラは力ずくで対応(tee はあきらめ)

.t.log:
        prove $< > $(*).log 2>&1 || (cat $(*).log; rm -f $(*).log; exit 1)
        cat $(*).log

うーん、ダサい。