Apenas pipe em sucesso [duplicado]

1

Existe uma maneira na linha de comando do Linux de ter apenas um canal de comando com saída para outro, quando o comando não falhou?

$ cmda | cmdb

Eu gostaria, então quando cmda retornar um código de status diferente de 0, sua saída não será redirecionada para cmdb .

    
por Jeroen Bollen 24.03.2015 / 22:10

1 resposta

7

Você precisará armazenar a saída em uma variável para realizar isso. Aqui está um exemplo:

if output=$(cmda); then
  printf '%s' "$output" | cmdb
fi
    
por 24.03.2015 / 22:13