【发布时间】:2011-10-15 20:34:49
【问题描述】:
我有一个 shell 脚本,我在其中包装了一个命令(mvn clean install),以将输出重定向到一个日志文件。
#!/bin/bash
...
mvn clean install $@ | tee $logfile
echo $? # Does not show the return code of mvn clean install
现在,如果 mvn clean install 因错误而失败,我希望我的包装器 shell 脚本也因该错误而失败。但由于我将所有输出通过管道传输到 tee,我无法访问 mvn clean install 的返回码,因此当我之后访问 $? 时,它始终为 0(因为 tee 成功)。
我尝试让命令将错误输出写入单独的文件并随后检查,但 mvn 的错误输出始终为空(似乎只写入标准输出)。
如何保留mvn clean install 的返回码,但仍将输出通过管道传输到日志文件?
【问题讨论】: