2 votos

La línea de comandos se ve extraña en la consola virtual

En un emulador de terminal como xterm mi prompt se ve así:

[august@macmini ~]$

pero en una consola virtual la cadena ;linux se antepone a la solicitud para que se vea así:

;linux[august@macmini ~]$

¿Alguien sabe de dónde puede venir la cadena "linux"?

2voto

August Karlstrom Puntos 445

Resulta que las cosas van mal cuando se ejecuta un comando para establecer el título de la ventana en una consola virtual (donde no hay ventana). Cambiando

PROMPT_COMMAND='printf "\e]0;%s\a" "$TERM"'

a

if [[ $TERM = xterm* ]]; then
    PROMPT_COMMAND='printf "\e]0;%s\a" "$TERM"'
fi

resuelve el problema.

0voto

maksim-s Puntos 6

Sólo para divertirme, así es como he configurado mi indicador:

# inspiration: http://www.stumbleupon.com/su/2LpQMi 
user_host_path="${debian_chroot:+($debian_chroot) }"'\u@\h: \w'
xterm_title='\[\e]0;'"$user_host_path"'\a\]'
color_bold='\[\033[0;1m\]'
color_reset='\[\033[0m\]'
[[ $TERM == xterm* || $TERM == rxvt* ]] && first_part="${xterm_title}"
first_part+="\n${user_host_path}\n"
last_part='\! \$ '
PROMPT_COMMAND="((\$? != 0)) && PS1='${first_part}${color_bold}[\$?]${color_reset} ${last_part}' || PS1='${first_part}${last_part}'"
unset user_host_path xterm_title color_bold color_reset first_part last_part

Se parece a esto:

glennj@homebase: ~
200 $ (exit 42)

glennj@homebase: ~
[42] 201 $ cd /tmp

glennj@homebase: /tmp
202 $

0voto

Peter in LA Puntos 11

No me entusiasmó la solución proporcionada aquí, ya que uso el mismo TERM para los terminales virtuales de Ubuntu que para otros terminales (screen-256color). Por lo tanto, eché un vistazo rápido a lo que otras variables de entorno podría ser útil para este propósito.

Mi conclusión fue utilizar la variable XDG_VTNR (¿Número de terminal virtual XDG?). Dado que Ubuntu utiliza VT#7 para el entorno de escritorio, una simple comprobación de si esta variable es mayor o igual a 7 hace el truco.

Tengo la función bash que construye mi prompt de todos modos, así que sólo rodeé la adición de la secuencia de escape del título con una comprobación contra la variable XDG_VTNR.

Por ejemplo, observe el En negrita parte de abajo:

\# Use new test (i.e. \[\[ \]\]) so as not to fail if XDG\_VTNR does not exist
**if \[\[ $XDG\_VTNR -ge 7 \]\]; then**
  # Add the window title escape sequence to the prompt
else
  # Don't add the window title escape sequence to the prompt
fi  

Sólo quería añadir esta nota por si puede ser útil para alguien más.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: