成功的唯一管道

Jer*_*oen 5 command-line pipe

在 Linux 命令行中有没有办法,当命令没有失败时,只有一个命令管道它的输出到另一个?

$ cmda | cmdb
Run Code Online (Sandbox Code Playgroud)

我想要它,因此当cmda返回 0 以外的状态代码时,其输出不会重定向到cmdb.

jor*_*anm 7

您需要将输出存储在变量中才能完成此操作。下面是一个例子:

if output=$(cmda); then
  printf '%s' "$output" | cmdb
fi
Run Code Online (Sandbox Code Playgroud)