Cómo 'establecer -x' para scripts distintos al mío

Cómo 'establecer -x' para scripts distintos al mío

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 xtraceopción configurada invocándolo directamente bashcon la -xopció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 xtraceopción para todas las invocaciones no interactivas de Bash. Para hacer esto, establezca la BASH_ENVvariable de entorno en un nombre de archivo adecuado y luego cree ese archivo con set -xsu 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_ENVen el entorno, expande su valor si aparece allí y usa el valor expandido como el nombre de un archivo para leer y ejecutar.

información relacionada