
Estou usando o Ubuntu e posso alterar manualmente a bash
cor 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
, tmux
ou screen
.
Minha ideia é escrever um shell
script e colocá-lo no .bashrc
qual 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 -l
nã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