5 votos

¿Por qué 'set -x' hace que el terminal arroje basura?

Este problema es bastante molesto y no puedo buscar en Google 'set -x' porque el signo menos tiene otra terminología allí.

En mi MacBookPro, cuando uso 'set -x' para depurar los comandos bash Cada vez que pulso la tecla "Enter", me aparece lo siguiente. ¿Alguna idea de cómo detener este feo volcado? debido a esto, para cada comando que ejecuto, tengo que desplazarme hacia atrás dos páginas para encontrar el comando real que estaba ejecutando.

++ update_terminal_cwd
++ local url_path=
++ local i ch hexch LC_CTYPE=C LC_ALL=
++ (( i = 0 ))
++ (( i < 24 ))
++ ch=/
++ [[ / =~ [/._~A-Za-z0-9-] ]]
++ url_path+=/
++ (( ++i ))
++ (( i < 24 ))
++ ch=U
++ [[ U =~ [/._~A-Za-z0-9-] ]]
++ url_path+=U
++ (( ++i ))
++ (( i < 24 ))
++ ch=s
++ [[ s =~ [/._~A-Za-z0-9-] ]]
++ url_path+=s
++ (( ++i ))
++ (( i < 24 ))
++ ch=e
++ [[ e =~ [/._~A-Za-z0-9-] ]]
++ url_path+=e
++ (( ++i ))
++ (( i < 24 ))
++ ch=r
++ [[ r =~ [/._~A-Za-z0-9-] ]]
++ url_path+=r
++ (( ++i ))
++ (( i < 24 ))
++ ch=s
++ [[ s =~ [/._~A-Za-z0-9-] ]]
++ url_path+=s
++ (( ++i ))
++ (( i < 24 ))
++ ch=/
++ [[ / =~ [/._~A-Za-z0-9-] ]]
++ url_path+=/
++ (( ++i ))
++ (( i < 24 ))
++ ch=i
++ [[ i =~ [/._~A-Za-z0-9-] ]]
++ url_path+=i
++ (( ++i ))
++ (( i < 24 ))
++ ch=s
++ [[ s =~ [/._~A-Za-z0-9-] ]]
++ url_path+=s
++ (( ++i ))
++ (( i < 24 ))
++ ch=h
++ [[ h =~ [/._~A-Za-z0-9-] ]]
++ url_path+=h
++ (( ++i ))
++ (( i < 24 ))
++ ch=a
++ [[ a =~ [/._~A-Za-z0-9-] ]]
++ url_path+=a
++ (( ++i ))
++ (( i < 24 ))
++ ch=h
++ [[ h =~ [/._~A-Za-z0-9-] ]]
++ url_path+=h
++ (( ++i ))
++ (( i < 24 ))
++ ch=a
++ [[ a =~ [/._~A-Za-z0-9-] ]]
++ url_path+=a
++ (( ++i ))
++ (( i < 24 ))
++ ch=k
++ [[ k =~ [/._~A-Za-z0-9-] ]]
++ url_path+=k
++ (( ++i ))
++ (( i < 24 ))
++ ch=/
++ [[ / =~ [/._~A-Za-z0-9-] ]]
++ url_path+=/
++ (( ++i ))
++ (( i < 24 ))
++ ch=D
++ [[ D =~ [/._~A-Za-z0-9-] ]]
++ url_path+=D
++ (( ++i ))
++ (( i < 24 ))
++ ch=o
++ [[ o =~ [/._~A-Za-z0-9-] ]]
++ url_path+=o
++ (( ++i ))
++ (( i < 24 ))
++ ch=w
++ [[ w =~ [/._~A-Za-z0-9-] ]]
++ url_path+=w
++ (( ++i ))
++ (( i < 24 ))
++ ch=n
++ [[ n =~ [/._~A-Za-z0-9-] ]]
++ url_path+=n
++ (( ++i ))
++ (( i < 24 ))
++ ch=l
++ [[ l =~ [/._~A-Za-z0-9-] ]]
++ url_path+=l
++ (( ++i ))
++ (( i < 24 ))
++ ch=o
++ [[ o =~ [/._~A-Za-z0-9-] ]]
++ url_path+=o
++ (( ++i ))
++ (( i < 24 ))
++ ch=a
++ [[ a =~ [/._~A-Za-z0-9-] ]]
++ url_path+=a
++ (( ++i ))
++ (( i < 24 ))
++ ch=d
++ [[ d =~ [/._~A-Za-z0-9-] ]]
++ url_path+=d
++ (( ++i ))
++ (( i < 24 ))
++ ch=s
++ [[ s =~ [/._~A-Za-z0-9-] ]]
++ url_path+=s
++ (( ++i ))
++ (( i < 24 ))

¡Gracias!

5voto

Nate Puntos 220

Lo que estás viendo aquí es un elegante scripting entre bastidores que Apple añadió en OS X 10.11 para establecer el título de la ventana del Terminal en función del directorio de trabajo actual. Desde set -x muestra qué comandos están siendo ejecutados por bash, también termina mostrando todas estas cosas que normalmente están detrás de las escenas (con doloroso detalle). Sin embargo, es bastante fácil de desactivar:

unset PROMPT_COMMAND

... y entonces puedes depurar en paz, pero la barra de título de tu ventana no se actualizará más. Si has terminado de depurar y quieres volver a activar las actualizaciones de la barra de título, sólo tienes que restablecer la variable:

PROMPT_COMMAND=update_terminal_cwd

3voto

Courtney Miles Puntos 101

Añade esta línea a tu .bashrc o .bash_profile si no quieres ver más la "basura".

[ "${PROMPT_COMMAND}" ] && PROMPT_COMMAND="{ ${PROMPT_COMMAND}; } 2>/dev/null"

advertencia Esto significa que todos los stderr salida de ${PROMPT_COMMAND} se volcará en /dev/null .

0voto

yoliho Puntos 340

El lugar donde hay que buscar es el manual de bash

Esto incluye

El uso de "+" en lugar de "-" hace que estas opciones se desactiven.

Por lo tanto, intente set +x

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X