在CI服务器上运行bash脚本时,我将得到一个错误代码141,无法在本地复制。
经过一些搜索后,听起来错误141表示一个PIPEFAIL,我有一个
set -o pipefail在剧本的顶端。
但是,我想知道导致管道失败的底层错误代码是什么。是否有方法提取失败命令的错误代码?或者,我是否需要重新构造脚本,以避免使用管道来获得这个结果?
发布于 2020-02-17 03:57:28
因为是bash,所以您可以考虑使用PIPESTATUS
command exit 1 | command exit 2 | command exit 3 | foobar; declare -p PIPESTATUS在没有找到foobar的警告之后,您应该得到PIPESTATUS的值
declare -a PIPESTATUS=([0]="1" [1]="2" [2]="3" [3]="127")https://unix.stackexchange.com/questions/567946
复制相似问题