De acordo com o link que você postou, deve ser algo assim:
if pv --wait "$input_filename" | openssl enc -aes-256-cbc -d -salt -out "$output_filename"; then
code for true
else
code for false
fi
Nos meus testes, isso pode ser um problema com os pipelines, dependendo do que está do outro lado do seu ... Eu acho que com o openssl você deve estar bem, mas se você estiver trabalhando com algo como cat
ou echo
I Acreditamos que sempre será tratado como um sucesso, porque o último comando no pipeline sairá com sucesso.
Se você tiver apenas um comando para executar com sucesso ou com falha, algo assim também pode funcionar:
command && code for success
ou
command || code for failure