¿Cómo puedo determinar si lo que está produciendo un proceso es stdout o stderr?
22
Solo conozco tres formas para determinar qué generará un programa en STDOUT y qué STDERR
Lee la documentación. O
Experimente con la redirección †
†Por ejemplo:
program > program.stdout 2> program.stderr
Luego mire los dos archivos de salida para ver qué ha escrito el programa en STDOUT y qué ha escrito en STDERR.
En lugar de redireccionar, puede canalizar tee
si necesita salida para continuar en la pantalla y en un archivo. Ver /programming//q/692000/477035
program | grep .
imprime STDOUT en rojo.Según su solicitud comentada:
fuente
stdout
y 2 =stderr
) para tomar la salida del conjunto interno de corchetes y ejecutarstdout
unsed
comando, mientrasstderr
pasa uno diferente{ { { { echo "stdout" ; echo "stderr">&2; } 2>&3; } 3>&1 1>&2 | awk '{print "ERROR:",$0}' 1>&3; } 3>&2 2>&1; }
Simplemente puede redirigir stderr a un archivo y si aparece algo en él, es de stderr.
p.ej
ls -a 2> ls-all.txt
Si por algún motivo se envió un error a stderr, será redirigido a este archivo.
fuente
Si desea hacer esto una vez, redirija uno de ellos a otro lugar.
Ejemplo, redirigiendo el estándar con
>
.ls -al> ls-l.txt (cualquier salida aquí no es de stdout, si ve algo debe ser una salida stderr)
Para el uso de redirección stderr
2>
fuente