Como definir uma cor de prompt de shell diferente para cada terminal recém-aberto

2

Estou usando o Ubuntu e posso alterar manualmente a cor do prompt bash para verde usando

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

No entanto, desejo que a cor do prompt do shell seja alterada automaticamente sempre que eu abrir um novo terminal ou guia. Estou ciente de que o termo básico tty 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 através de Putty , tmux ou screen .

Minha ideia é escrever um script shell e colocá-lo em .bashrc , que detecta a nova sessão de terminal que o usuário abriu e incrementa um contador global de \e[0;31m[ para \e[0;47m[ . Como detectar o número de terminais abertos pelo usuário?

    
por manav m-n 20.05.2016 / 07:39

1 resposta

0

A contagem dos terminais (ex: who - a | grep user | wc -l ) não funcionará: quando uma ou shell está fechada, o número total diminui e o novo terminal pode coincidir com 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
    
por 20.05.2016 / 08:17