¿Cómo evito que GNU Screen restablezca mi mensaje? [cerrado]

13

Cuando ejecuto la pantalla, cambia mi solicitud. ¿Cómo evito este comportamiento? Por ejemplo:

$ echo $PS1
\[\e]0;\h:Prod\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n\$
$ screen
$ echo $PS1
[\u@\h \W]\$

Curiosamente, no hace esto en otras máquinas. La máquina en cuestión es Redhat 4 actualización 4, con la versión de pantalla 4.00.02 (FAU) 5-Dec-03.

Swoogan
fuente

Respuestas:

16

Intente agregar (suponiendo que aún no esté allí) a su archivo .screenrc:

cáscara - $ SHELL

Esto le dará un shell de inicio de sesión cuando inicialice una sesión de pantalla o cree otro terminal desde dentro de uno.

Gary Chambers
fuente
1
Tenía 'shell / bin / bash' en mi .screenrc, aparentemente debería haber sido 'shell - / bin / bash' o lo que usted proporcionó.
Swoogan
2

Muchas distribuciones verifican el tipo de terminal antes de configurar el indicador. Ubuntu, por ejemplo, contiene esta pequeña joya en el .bashrc predeterminado:

# establecer una solicitud elegante (sin color, a menos que sepamos que "queremos" el color)
caso "$ TERM" en
    xterm-color) color_prompt = yes ;;
esac

Dado que la pantalla usa su propia variable TERM ("pantalla"), bash piensa que no es capaz de mostrar un indicador de color elegante, por lo que por defecto es uno más simple. La pantalla es, por supuesto, totalmente capaz de las mismas indicaciones complejas que un terminal normal.

Por lo tanto, para anular este comportamiento, simplemente configure sus opciones de PS1 preferidas al final de su ~/.bashrcarchivo. O, si se siente aventurero, busque la prueba que verifica el valor de la variable TERM y modifíquela para aceptar "pantalla" además de "xterm-color".

Insyte
fuente
1

¿Quizás esta es una variable personalizada que se configura en el archivo ~ / .screenrc?

Babu
fuente
1
Sí, verifique setenv PS1 en screenrc global o personal
radio
44
¿Y qué variable personalizada sería esa? Si no sabe la respuesta, no responda.
Swoogan
0

Tuve el mismo problema (no más avisos personalizados en pantalla) en una máquina con SHELL -$SHELLy sin setenv PS1screenrc, y ninguna prueba especial para terminal (tonto) en bashrc.

Configuración del $ TERM usado:

$ echo $TERM
urxvt-unicode-256color

en screenrc recuperé mi mensaje personalizado mientras estaba en Pantalla:

- #term xterm-256color
+ term urxvt-unicode-256color

PD: otra cuenta no tenía necesidad de esto, pero bashrc prueba para dircolors y un terminal moderno de esta manera 1 :

if [[ $'\n'${match_lhs} == *$'\n'"TERM "${safe_term}* ]] ; then
PS1=<my fancy prompt>

Creo que esto también funciona:

if [ "$TERM" != "dumb" ]; then
PS1=<my fancy prompt>
tuk0z
fuente