Tengo ciertos scripts bash críticos que son invocados por código que no controlo, y donde no puedo ver la salida de la consola. Quiero un rastro completo de lo que estos scripts hicieron para el análisis posterior. Para hacer esto, quiero hacer que cada script se trace automáticamente. Esto es lo que estoy haciendo actualmente:¿Mejor forma de hacer un autoarchivo de script bash?
#!/bin/bash
# if last arg is not '_worker_', relaunch with stdout and stderr
# redirected to my log file...
if [[ "$BASH_ARGV" != "_worker_" ]]; then
$0 "[email protected]" _worker_ >>/some_log_file 2>&1 # add tee if console output wanted
exit $?
fi
# rest of script follows...
¿Existe una forma mejor y más limpia de hacerlo?
¡Más excelente! Solo sabía que tenía que haber una manera más elegante. Gracias, Kevin; esto entrará en uso inmediato ... –
¿puede también salir a la terminal actual y registrarse en un archivo? Traté de usar 'tee' con' exec' pero no encontré ninguna manera .. –
Me gustaría vincular a [esta pregunta] (http://stackoverflow.com/questions/3173131/redirect-copy-of-stdout-to -log-file-from-within-bash-script-itself) donde es posible ver el resultado y también registrarlo, todo ordenado desde el script. –