linux - español - ¿Qué hace `set-x`?
shell script windows (2)
set -x
Imprime un rastro de comandos simples, para comandos, comandos de caso, comandos de selección y aritmética para comandos y sus argumentos o listas de palabras asociadas después de que se expanden y antes de que se ejecuten. El valor de la variable PS4 se expande y el valor resultante se imprime antes del comando y sus argumentos expandidos.
Ejemplo
set -x
echo `expr 10 + 20 `
+ expr 10 + 20
+ echo 30
30
set +x
echo `expr 10 + 20 `
30
El ejemplo anterior ilustra el uso de
set -x
.
Cuando se usa, la expresión aritmética anterior se ha expandido.
Podríamos ver cómo se ha evaluado una línea singe paso a paso.
-
Primer paso
expr
ha sido evaluado. -
Se ha evaluado el
echo
segundo paso.
Para saber más sobre set → visite este enlace
cuando se trata de su script de shell,
[ "$DEBUG" == ''true'' ] && set -x
Es posible que su script haya estado imprimiendo algunas líneas de información adicionales cuando el modo de ejecución se seleccionó como
DEBUG
.
Tradicionalmente, las personas solían habilitar el modo de depuración cuando se llamaba un script con argumento opcional como
-d
Tengo un script de shell con la siguiente línea:
[ "$DEBUG" == ''true'' ] && set -x
set -x
habilita un modo del shell donde todos los comandos ejecutados se imprimen en el terminal.
En su caso, se usa claramente para la depuración, que es un caso de uso típico para
set -x
: imprimir cada comando a medida que se ejecuta puede ayudarlo a visualizar el flujo de control del script si no funciona como se esperaba.