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