Tengo un script de shell con set -x
una salida detallada / de depuración:
#!/bin/bash
set -x
command1
command2
...
El resultado se ve así:
+ command1
whatever output from command1
+ command2
whatever output from command2
Mi problema es que la salida de la shell (causada por set -x
) va al stderr, mezclada con la salida de los comandos ( command1
, command2
, ...). Me encantaría tener la salida "normal" en la pantalla (como si el script se ejecutara sin set -x
) y la salida "extra" de bash por separado en un archivo.
Entonces me gustaría tener esto en la pantalla:
whatever output from command1
whatever output from command2
y esto en un archivo de registro:
+ command1
+ command2
(también está bien si el archivo de registro tiene todo junto)
El set -x 2> file
obviamente doens't toman el efecto deseado, porque no es la salida del comando set, pero cambiar el comportamiento de la fiesta.
El uso bash 2> file
de todo el script tampoco hace lo correcto, porque redirige el stderr de cada comando que se ejecuta también en este shell, por lo que no veo el mensaje de error de los comandos.