Como definir diferentes cores de prompt do shell para cada terminal recém-aberto

Como definir diferentes cores de prompt do shell para cada terminal recém-aberto

Estou usando o Ubuntu e posso alterar manualmente a bashcor do prompt do shell paraverdeusando

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

No entanto, quero que a cor do prompt do shell mude automaticamente sempre que eu abrir um novo terminal ou guia. Estou ciente de que o tty TERM básico tem 16 cores e não há problema em girar as cores se mais de 16 terminais estiverem abertos. A solução também funcionará quando eu me conectar por meio de Putty, tmuxou screen.

Minha ideia é escrever um shellscript e colocá-lo no .bashrcqual detecte a nova sessão de terminal que o usuário abriu e incremente um contador global de \e[0;31m[para \e[0;47m[. Como detectar a quantidade de terminais abertos pelo usuário?

Responder1

Contar os terminais (ex:) who - a | grep user | wc -lnão funcionará: quando um ou vários shells são fechados, o número total diminui e o novo terminal pode corresponder a outro já aberto.

Você deve simplesmente ter um contador:

Se você quiser 6 cores no 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

informação relacionada