我有一个 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
但仍将输出传输到日志文件?