Tubería condicional Bash
¿Cómo puedo canalizar una salida de un comando en caso de que devuelva verdadero?
<code>function open { TEMPFILE=$(mktemp -u) if ! gpg2 --quiet --decrypt --batch --passphrase "$2" "$1" 2> $TEMPFILE; then error $"Password errata od errore di lettura dal file\n\nDettagli:\n$(grep -v '^$' $TEMPFILE)" rm -f $TEMPFILE return 1 fi rm -f $TEMPFILE } if ! open "$@" "$PASSWORD"; then exit 1 fi | <SOMECOMMAND> </code>
De esta manera, simplemente canaliza y no verifica si abrir devuelve verdadero o falso, por lo que nunca se ejecuta la "salida 1".
¿Cómo puedo solucionarlo sin usar archivos (por razones de seguridad)?