我想使用一個小腳本對我的gcc的輸出做一些整容工作。在管道中傳播退出狀態
所以我用這個命令:
mygcc foo.c 2>&1 | myscript.pl
基本上我的腳本做這樣的事情:
$error = 0;
while(<>)
{
s/^"(.*)"\s*,\s*line\s*(\d+)\s*:\s*(cc\d+)\s*:/colored("[$3]", 'bold red').colored(" $1", 'red').":".colored("$2", 'yellow')/ge;
s/ \^/colored(" ^", 'yellow')/e;
s/(error:.*$)/colored($1, 'red')/ge;
s/(warning.*$)/colored($1, 'yellow')/ge;
print;
$error = -1;
}
不幸的是,從GCC退出代碼是不正確通過管道傳播。我需要做的是從gcc獲取退出代碼並將其從我的腳本中寫回。
如果沒有這個,make會在錯誤的情況下不會正確地停止構建過程。
我該如何做到這一點?