Tengo una serie de comandos a, b, c, que estoy encadenando con &&: a && b && c
.
Quiero capturar la salida de todos los comandos para stdout y stderr.
a && b && c 2>&1 > capture_file
solo captura la salida del comando c.
shell
io-redirection
TLOlczyk
fuente
fuente
2>&1
significa duplicar el destino de stdout (1) a stderr (2), por lo que sería inútil a menos que haya configurado la redirección de stdout de antemano.2>capture_file >&2
(pero no, porque eso no es idiomático). Lo importante es que redirija uno de ellos a un archivo antes de duplicar ese flujo al otro.Además de usar la agrupación de comandos
{}
, también puede ejecutar los comandos en una subshell y capturar la salida (y / o error) de una vez:Ejemplo:
fuente