2017-01-27 43 views
0

我试图修改git-prompt.sh以用更具可读性的版本替换*/+回购状态指示器,例如“更改”/“暂存文件”。git-prompt.sh输出中的颜色

只是改变文本很容易,但我也想为他们不同的颜色。只将诸如\[\e[33m\]的一些颜色转义序列粘贴到状态描述字符串中不起作用;转义序列等只是转储到输出。

当git-prompt.sh脚本输出时,有什么方法可以让bash理解bash的颜色吗?

回答

0

看来你必须使用tput颜色。

https://gist.github.com/trey/2722934#gistcomment-1835441

YELLOW="\[$(tput setaf 3)\]" 
RESET="\[$(tput sgr0)\]" 

PS1="\h:\W \u\$(__git_ps1 \" ${YELLOW}(%s)${RESET} \")\$ " 

参见https://raymii.org/s/snippets/Bash_Bits_Add_Color_Output_To_Your_Scripts.htmlhttps://unix.stackexchange.com/questions/269077/tput-setaf-color-table-how-to-determine-color-codes为颜色列表为例。

+0

为了澄清,这些更改不在.bashrc中(它在设置PS1和调用__git_ps1时已经在那里工作,但它的所有输出将获得单一颜色),而是在git-prompt.sh本身中。但是,使用tput在那里工作。唯一的一点是它会在结果中输出\ [\],所以我删除了那些并得到了我想要的结果。谢谢! – tacospice