Как установить разные цвета приглашения оболочки для каждого вновь открытого терминала

Как установить разные цвета приглашения оболочки для каждого вновь открытого терминала

Я использую Ubuntu и могу вручную изменить bashцвет приглашения оболочки назеленыйс использованием

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

Однако я хочу, чтобы цвет приглашения оболочки автоматически менялся всякий раз, когда я открываю новый терминал или вкладку. Я знаю, что базовый tty TERM имеет 16 цветов, и можно менять цвета, если открыто более 16 терминалов. Будет ли решение работать также при подключении через Putty, tmuxили screen.

Моя идея заключается в том, чтобы написать shellскрипт и поместить его в .bashrcкоторый обнаруживает новый сеанс терминала, открытый пользователем, и увеличивает глобальный счетчик с \e[0;31m[до \e[0;47m[. Как определить количество открытых пользователем терминалов?

решение1

Подсчет терминалов (например: who - a | grep user | wc -l) не будет работать: когда одна или несколько оболочек закрыты, общее количество уменьшается, и новый терминал может совпадать с другим, уже открытым.

У вас просто должен быть счетчик:

Если вы хотите всего 6 цветов:

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

Связанный контент