В моем .bashrc
, я использую цветовые коды терминала ANSI, чтобы раскрасить различные биты. Это выглядит так:
PS1='\u@\h:\w\[\033[33m\]$(virtual_env)\[\033[32m\]$(git_branch)\[\033[0m\]$ '
где virtual_env
и git_branch
bash-функции, которые выводят материал на стандартный вывод.
Теперь, чтобы было легче читать и изменять, я хотел бы хранить цветовые коды в переменных и ссылаться на них, а не встраивать их непосредственно в 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
?