
Я использую 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