¿Cómo deshacer `set -x`?

Escribí set -x en la terminal.

Ahora la terminal sigue imprimiendo el último comando ejecutar sobre mi salida para que el comando

~]$echo "this is what I see" 

devuelva

+ echo "this is what I see" this is what I see 

Hay no hay página de manual para set, ¿cómo desactivo set -x?

Comentarios

  • set es un comando builtin de shell (al menos en bash), por lo que se encuentra la documentación en la página de manual de bash '. Busque en la página de manual /^ *SHELL BUILTIN COMMANDS para leer todo sobre set y sus amigos.
  • pero hay una man página para set Es parte de la guía del programador POSIX … ¿Deberías realmente obtener esa serie … por favor?
  • En Bash, escribe help set.
  • @ lonewarrior556 si encuentra alguna de las respuestas útiles, puede comentar y / o marcar una solución. Contribuimos con nuestro tiempo para ayudar ….

Responder

Use set +x. Más información:

$ type set set is a special shell builtin 

Dado que set es un shell incorporado, está documentado en la documentación de su shell.

Tenga en cuenta que algunos sistemas tienen páginas de manual para comandos de shell incorporados, pero estas páginas de manual solo son correctas si está utilizando el shell predeterminado. En Linux, puede tener páginas de manual que presenten comandos POSIX, que aparecerá para las funciones integradas de shell porque no hay una página de manual de una utilidad independiente para ocultarlas; estas páginas de manual son correctas para todos los shells de estilo Bourne (dash, bash, * ksh e incluso zsh) pero normalmente están incompletas.

Consulte Leer y buscar páginas de manual largas para obtener sugerencias sobre cómo buscar una página de manual de shell larga incorporada. p>

En este caso, la respuesta es la misma para todos los shells estilo Bourne. Si set -LETTER activa una opción, set +LETTER la desactiva. Por lo tanto, set +x desactiva los seguimientos. El último rastro que dice set +x es inevitable (excepto al dejar salir el shell; a veces puede usar un subshell (set -x; command to trace; other command to trace); command that is not traced).

Comentarios

  • Esta es una buena respuesta, pero me hubiera ahorrado un par de minutos si pusieras el " set + x " al principio en lugar de incrustado en el último párrafo. (Encontré el detalle adicional útil).
  • { set +x ;} 2> /dev/null oculta el set +x traza (ganó ' no funciona en el shell de Bourne). Sin embargo, algunas shells todavía generan un + 2> /dev/null.

Respuesta

Puede detener el modo de depuración set +x. Consulte el ejemplo página

Respuesta

Ha habilitado la depuración modo, debe desactivarlo.

Extraiga el formulario help set:

El uso de + en lugar de – hace que estas banderas se apaguen.

Entonces, escriba set +x

Respuesta

$ set +x # is the opposite of set -x, and will reverse what you typed. 

No puede «encontrar una página de manual solo en set, porque como ve a continuación:

$ type set 

set es un shell especial incorporado . Si bien está documentado en la página de manual de su shell, suponiendo que bash aquí, también puede obtener documentación específica con

$ help set || builtin help set # luckily Bash has builtin help on builtin commands 

La página de manual sobre bash o sh es una buena lectura, pero es un poco largo para resolver. La información efectiva que necesitaba para anular la configuración de su -x se encuentra al final antes del Exit Status: y dice:

El uso de + en lugar de – hace que estos indicadores se apaguen. Las banderas también se pueden utilizar tras la invocación del shell. El conjunto actual de banderas se puede encontrar en $ -. Los n ARG restantes son parámetros posicionales y se asignan, en orden, a $ 1, $ 2, .. $ n. Si no se proporcionan ARG, se imprimen todas las variables de shell.

Comentarios

  • Aunque no es incorrecto , ¿qué ha agregado más allá de las respuestas existentes?
  • @JeffSchaller Es ' editado para ser directo y breve. Cuando necesité esta respuesta, tuve que leer toda la página para encontrar la respuesta correcta. De hecho, dejé de leer la respuesta aceptada y simplemente fui a help set y lo leí. Intenté mejorar la respuesta aceptada. unix.stackexchange.com/revisions/149137/4 Se aceptó pero luego se rechazó.Como un artículo de noticias, comienza con la información más importante y asume que en cualquier momento el lector puede detenerse, siendo cada oración y párrafo siguiente menos importante que el procedimiento. Es ' mi estilo SO en unix se.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *