2

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

0

Подсчет терминалов (например: 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .