У моєму .bashrc
кольорі я використовую термінальні кольори ANSI для розфарбовування різних бітів. Це виглядає приблизно так:
PS1='\u@\h:\w\[\033[33m\]$(virtual_env)\[\033[32m\]$(git_branch)\[\033[0m\]$ '
де virtual_env
і git_branch
є bash функції, які виводять матеріал на stdout.
Тепер, щоб полегшити читання та зміни, я хотів би зберігати коди кольорів у змінних і посилатися на них, а не вбудовувати їх безпосередньо в PS1
. Тож у мене є купа таких змінних:
GREEN="\[\033[32m\]"
YELLOW="\[\033[33m\]"
RESET="\[\033[0m\]"
Я хотів би мати можливість написати щось на кшталт:
PS1='\u@\h:\w${YELLOW}$(virtual_env)${GREEN}$(git_branch)${RESET}$ '
Але це не спрацьовує - кольорові коди відображаються у відповіді, як ніби вони втекли. Кольори працюють правильно, якщо я замість цього використовую подвійні лапки PS1
, але підказка змінюється лише тоді, коли я це роблю source ~/.bashrc
.
Я спробував інші речі , які я бачив , що люди роблять - використовуючи printf
, використовуючи одиничні лапки для квітів, поміщаючи \[
і \]
в PS1
замість змінного кольору, але нічого не схоже на роботу.
Як я можу використовувати змінні для кольорових кодів?
.bashrc
?