Según " Linux: The Complete Reference 6th Edition " (pág. 44), solo puede canalizar STDERR utilizando los |&
símbolos de redireccionamiento.
He escrito un script bastante simple para probar esto:
#!/bin/bash
echo "Normal Text."
echo "Error Text." >&2
Ejecuto este script así:
./script.sh |& sed 's:^:\t:'
Presumiblemente, solo las líneas impresas en STDERR estarán sangradas. Sin embargo, en realidad no funciona así, como veo:
Normal Text.
Error Text.
¿Qué estoy haciendo mal aquí?
./script.sh > /tmp/stdout_goes_here |& grep 'grepping_script_stderr'
no funciona como se pretende, es decir: redirecciónscript.sh
'sstdout
(que, de acuerdo con el manual del fragmento debe ocurrir primero), y luego permitirgrep
a procesar la secuencia de comandos destderr
. En cambio,stderr
y tdout` ambos terminan enstdout_goes_here