GNU/Linux >> Tutoriales Linux >  >> Linux

¿Qué hace `set -x`?

set -x

Imprime un rastro de comandos simples, para comandos, comandos de mayúsculas y minúsculas, comandos de selección y aritmética para comandos y sus argumentos o listas de palabras asociadas después de expandirse y antes de ejecutarse. El valor de la variable PS4 se expande y el valor resultante se imprime antes del comando y sus argumentos expandidos.

[fuente]

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 utiliza, la expresión aritmética anterior se ha ampliado. Pudimos ver cómo una sola línea ha sido evaluada paso a paso.

  • Primer paso expr ha sido evaluado.
  • Segundo paso echo ha sido evaluado.

Para saber más sobre set → visita este enlace

cuando se trata de su script de shell,

[ "$DEBUG" == 'true' ] && set -x

Su secuencia de comandos podría haber estado imprimiendo algunas líneas adicionales de información cuando el modo de ejecución se seleccionó como DEBUG . Tradicionalmente, la gente solía habilitar el modo de depuración cuando un script llamaba con un argumento opcional como -d


-u:deshabilitado por defecto. Cuando está activado, se muestra un mensaje de error cuando se usa una variable no configurada.

-v:inactivo por defecto. Después de la activación, se mostrará el contenido original de la información (sin resolución variable) antes de que se emita la información.

-x:inactivo por defecto. Si está activado, el contenido del comando se mostrará antes de que se ejecute el comando (después de la resolución variable, hay un símbolo ++).

Compare las siguientes diferencias:

/ # set -v && echo $HOME
/root
/ # set +v && echo $HOME
set +v && echo $HOME
/root

/ # set -x && echo $HOME
+ echo /root
/root
/ # set +x && echo $HOME
+ set +x
/root

/ # set -u && echo $NOSET
/bin/sh: NOSET: parameter not set
/ # set +u && echo $NOSET

set -x habilita un modo del shell donde todos los comandos ejecutados se imprimen en la 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.

set +x lo desactiva.


Linux
  1. ¿Qué significa "-" (doble guión)?

  2. ¿Qué hace Echo $? ¿¿Hacer??

  3. Que hace . ~/.bashrc Comando Hacer??

  4. Origen de un hilo de kworker

  5. ¿Qué significa set -e en un script bash?

¿Qué hace exactamente Grub_gfxpayload_linux=text?

¿Qué devuelve malloc(0)?

¿Qué significa 'cd -'?

¿Qué hace 'bash -c'?

¿Alguien puede explicar en detalle qué hace set -m?

¿Qué hace 'set -e' y por qué podría considerarse peligroso?