在我的文章中.bashrc
,我使用ANSI终端颜色代码对各个位进行着色。看起来像这样:
PS1='\u@\h:\w\[\033[33m\]$(virtual_env)\[\033[32m\]$(git_branch)\[\033[0m\]$ '
其中virtual_env
和git_branch
是在stdout上输出内容的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
,而不是颜色可变的,但似乎没有任何工作。
如何将变量用于颜色代码?
@cuonglm您所有的.bashrc都属于我们吗?我将展示自己。
—
CivFan
.bashrc
吗?