У моєму .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?