Todavía estoy lidiando con un error deotra preguntaque no ha recibido respuesta porque no puedo obtener información de depuración.
Tengo scripts que ejecutan otros scripts y necesito ver cómo se desconecta el tty de la terminal.
¿Hay alguna forma de 'establecer -x' globalmente? No puedo configurarlo en el script del problema porque lo genera dinámicamente, no yo, pero me gustaría ver qué tiene de malo.
Respuesta1
Invocar Bash con un conjunto de opciones de shell
De acuerdo con laInvocar golpesección del manual de Bash,
Todas las opciones de un solo carácter utilizadas con el conjunto incorporado (consulte El conjunto incorporado) se pueden usar como opciones cuando se invoca el shell
Esto significa que puede ejecutar un script Bash con la xtrace
opción configurada invocándolo directamente bash
con la -x
opción y el nombre del archivo del script como argumento, por ejemplo,
bash -x /path/to/script
Configurar la opción de shell para todos los scripts de shell
Cuando dices "global", supongo que quieres configurar la xtrace
opción para todas las invocaciones no interactivas de Bash. Para hacer esto, establezca la BASH_ENV
variable de entorno en un nombre de archivo adecuado y luego cree ese archivo con set -x
su contenido:
export BASH_ENV=~/.bash_env
echo set -x > ~/.bash_env
Desde la página de manual:
Cuando bash se inicia de forma no interactiva, para ejecutar un script de shell, por ejemplo, busca la variable
BASH_ENV
en el entorno, expande su valor si aparece allí y usa el valor expandido como el nombre de un archivo para leer y ejecutar.