Cómo configurar un color de indicador de shell diferente para cada terminal recién abierta

Cómo configurar un color de indicador de shell diferente para cada terminal recién abierta

Estoy usando Ubuntu y puedo cambiar manualmente el bashcolor del indicador del shell averdeusando

export PS1="\e[0;32m[\u@\h \W]\$ \e[m"

Sin embargo, quiero que el color del indicador de shell cambie automáticamente cada vez que abro una nueva terminal o pestaña. Soy consciente de que el tty TERM básico tiene 16 colores y está bien rotar los colores si hay más de 16 terminales abiertos. ¿La solución también funcionará cuando me conecte a través de Putty, tmuxo screen.

Mi idea es escribir un shellscript y colocarlo en .bashrcel que detecte la nueva sesión de terminal que el usuario ha abierto e incremente un contador global de \e[0;31m[a \e[0;47m[. ¿Cómo detectar el número de terminales abiertos por el usuario?

Respuesta1

Contar los terminales (ej: who - a | grep user | wc -l) no funcionará: cuando uno o varios shells están cerrados, el número total disminuye y el nuevo terminal puede coincidir con otro ya abierto.

Simplemente deberías tener un contador:

Si quieres 6 colores en total:

touch ~/.colornumber
new=$(awk '(NR==1) { print ($1 + 1) % 6; }' ~/.colornumber)
echo $new > ~/.colornumber
#and use color number $new for your current terminal, for example defined in an array of 6 entries. 
 # just note here that color 0 is for the 6th terminal, not the first... or change the awk above

información relacionada