bash io-redirection

redirigir toda la salida en un script bash cuando se usa set-x



io-redirection (2)

Esto es lo que acabo de buscar en Google y me recuerdo usando esto hace algún tiempo ...

Use exec para redirigir tanto la salida estándar como el error estándar de todos los comandos en un script:

#!/bin/bash logfile=$$.log exec > $logfile 2>&1

Para obtener más información sobre la redirección mágica, consulte la Guía avanzada de scripts de Bash - Redirección de E / S.

Si también desea ver la salida y la depuración en el terminal además del archivo de registro, vea la COPIA de redirección de stdout al archivo de registro desde el propio script de bash .

Si desea controlar el destino de la salida de seguimiento de set -x independientemente de STDOUT y STDERR normales, vea cómo bash almacena la salida de set -x en el archivo de registro .

Tengo una secuencia de comandos bash que ha set -x en ella. ¿Es posible redirigir las impresiones de depuración de este script y toda su salida a un archivo? Idealmente me gustaría hacer algo como esto:

#!/bin/bash set -x (some magic command here...) > /tmp/mylog echo "test"

y obtener el

+ echo test test

salida en / tmp / mylog, no en stdout.


la salida -x va a stderr, así que para registrarla haga:

set -x exec 2>/tmp/mylog