Come impostare diversi colori di prompt della shell per ogni terminale appena aperto


2

Sto usando Ubuntu e posso modificare manualmente il bash shell prompt color a verde utilizzando

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

Tuttavia, voglio che il colore del prompt della shell cambi automaticamente ogni volta che apro un nuovo terminale o scheda. Sono consapevole del fatto che il TTY TERM di base ha 16 colori, ed è possibile ruotare i colori se sono aperti più di 16 terminali. La soluzione funzionerà anche quando mi collegherò Putty, tmux o screen.

La mia idea è di scrivere a shell sceneggiatura e inseriscilo .bashrc che rileva la nuova sessione terminale che l'utente ha aperto e incrementa un contatore globale da \e[0;31m[ a \e[0;47m[. Come rilevare il numero di terminali aperti dall'utente?

Risposte:


0

Conta i terminali (es: who - a | grep user | wc -l ) non funzionerà: quando uno o più shell sono chiusi, il numero totale diminuisce e il nuovo terminale potrebbe corrispondere a un altro già aperto.

Dovresti semplicemente avere un contatore:

Se vuoi 6 colori nel complesso:

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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.