よくきたはてダ このページをアンテナに追加 RSSフィード

2009-10-27

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

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

通常だと終了コード0以外はmakeの処理が中断する.

$ cat | make -f -
all: 
        exit 1
exit 1
make: *** [all] エラー 1
$

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

$ cat | make -f -
all:
        exit 1 | tee /dev/null
exit 1 | tee /dev/null
$

さてコレはどうしたらいいのでしょうかー!!

iakioiakio 2009/10/27 11:51 bash限定っぽいですがPIPESTATUSってのを使えばいいのかもしれません

emasakaemasaka 2009/10/27 16:59 CentOS 5で試してみました。

all:
set -o pipefail; exit 1 | tee /dev/null

elfelf 2009/10/27 19:08 ぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉ!!
試してみるぅっっっっっっっっっっっっ!!

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/elf/20091027/1256610048