Estoy teniendo algunos problemas con algunos scripts en bash, sobre errores y comportamientos inesperados. Me gustaría investigar las causas de los problemas para poder aplicar correcciones. ¿Hay alguna manera de que pueda activar algún tipo de "modo de depuración" para bash, para obtener más información?
Respuesta aceptada:
Inicie su secuencia de comandos bash con bash -x ./script.sh
o agregue en su secuencia de comandos set -x
para ver la salida de depuración.
Adicional con bash
4.1 o posterior:
Si desea escribir la salida de depuración en un archivo separado, agregue esto a su secuencia de comandos:
exec 5> debug_output.txt
BASH_XTRACEFD="5"
Consulte:https://stackoverflow.com/a/25593226/3776858
Si desea ver los números de línea, agregue esto:
PS4='$LINENO: '
Si tiene acceso a logger
entonces puede usar esto para escribir la salida de depuración a través de su syslog con la marca de tiempo, el nombre del script y el número de línea:
#!/bin/bash
exec 5> >(logger -t $0)
BASH_XTRACEFD="5"
PS4='$LINENO: '
set -x
# Place your code here
Puede usar la opción -p
de logger
Comando para configurar una instalación individual y un nivel para escribir la salida a través de syslog local en su propio archivo de registro.