获取ash中管道中第一个命令的错误代码

获取ash中管道中第一个命令的错误代码

我通常wget将一个大文件下载到两个 FIFO,如下所示:

wget <wget-args> -O - | tee -a "$fifo1" >> "$fifo2"

我想检索wget失败时的错误代码。

set -o pipefail返回管道中最右边命令的错误代码,因此我无法确定错误代码来自wget.

那么我怎样才能在灰烬中做到这一点呢?

答案1

只需将 wget 的返回码重定向到一个文件,这里$?包含返回码

$ (wget <wget-args> -O - ; echo $? > result) | tee -a "$fifo1" >> "$fifo2"

这里的文件结果将包含您的操作的状态代码

$ cat result
  0

相关内容