Título de la pestaña del terminal después de la sesión SSH

10

En Mac OS X (estoy en la versión 10.6.8, aunque creo que otras versiones son las mismas), al ingresar a una máquina remota se cambia el título de la pestaña actual en la Terminal. Molestamente, cuando me desconecto de la máquina remota, ya sea explícitamente con exit o mediante un tiempo de espera, el título de la pestaña no vuelve a ser lo que era.

Casi a diario esto casi me causa un ataque al corazón, cuando escribo un comando u otro, solo para ver por el rabillo del ojo que la pestaña aún se llama usuario @ remotehost. Soy un usuario cauteloso que siempre tiende a pwd etc para confirmar mi ubicación antes de hacer cualquier cosa, sin embargo, todavía me sorprende en un momento de pánico cuando estoy haciendo DROP DATABASE x y veo el nombre del host remoto en la pestaña .

En pocas palabras, ¿hay alguna forma de revertir este título cuando me desconecto de un host remoto o tengo que seguir abriendo una nueva pestaña cada vez que me desconecto para restablecer el título?

    
pregunta Peter O'Callaghan 27.02.2013 - 11:15

2 respuestas

19

Agrega un PROMPT_COMMAND a tu .bash_profile

export PROMPT_COMMAND="echo -ne '3]0;${USER}@${HOSTNAME}
export PROMPT_COMMAND="echo -ne '3]0;${USER}@${HOSTNAME}%pre%7';$PROMPT_COMMAND"
7';$PROMPT_COMMAND"

El PROMPT_COMMAND se ejecuta cada vez que se muestra la solicitud.

Tenga en cuenta que incluimos la variable de entorno PROMPT_COMMAND existente, de modo que no perdemos ninguna configuración existente (es decir, update_terminal_cwd ).

    
respondido por el s01ipsist 12.04.2013 - 03:35
1

Esto es lo que necesitará pegar en su archivo .bash_profile . Esto es mucho más limpio y toma el enfoque que hace Apple cuando actualiza su directorio de trabajo actual. La comprobación de la variable update_term_title que ya está presente no es realmente necesaria (ya que nadie llama a bash -- login ), sino que se presenta como un guardia.

if [ -z "$INSIDE_EMACS" ]; then
    # Update the terminal title on every prompt shown
    update_term_title() {
        # Print user@short-hostname once SSH quits.
        echo -ne "3]0;${USER}@${HOSTNAME%%.*}
if [ -z "$INSIDE_EMACS" ]; then
    # Update the terminal title on every prompt shown
    update_term_title() {
        # Print user@short-hostname once SSH quits.
        echo -ne "3]0;${USER}@${HOSTNAME%%.*}%pre%7"
        # Or ${HOSTNAME} if short host names aren't your taste
        # Or echo -ne "3]0;%pre%7" if you don't want anything.
    }
    # Check to see if update terminal title is present?
    if ! echo $PROMPT_COMMAND | grep -q update_term_title
    then
       # This function is not found in PROMPT_COMMAND, add it
       PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND; }update_term_title"
    fi
fi
7" # Or ${HOSTNAME} if short host names aren't your taste # Or echo -ne "3]0;%pre%7" if you don't want anything. } # Check to see if update terminal title is present? if ! echo $PROMPT_COMMAND | grep -q update_term_title then # This function is not found in PROMPT_COMMAND, add it PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND; }update_term_title" fi fi
    
respondido por el zapstar 02.10.2017 - 09:39

Lea otras preguntas en las etiquetas