我想使用一个小脚本对我的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会在错误的情况下不会正确地停止构建过程。
我该如何做到这一点?