【发布时间】:2017-01-27 12:29:22
【问题描述】:
我正在尝试修改 git-prompt.sh 以将 */+ repo 状态指示符替换为更具可读性的版本,例如“更改”/“暂存文件”。
只需更改文本就很容易了,但我也希望它们具有不同的颜色。简单地将一些颜色转义序列(例如\[\e[33m\])粘贴到状态描述字符串中是行不通的;转义序列等只是转储到输出中。
当从 git-prompt.sh 脚本输出时,有什么方法可以让 bash 理解颜色?
【问题讨论】:
我正在尝试修改 git-prompt.sh 以将 */+ repo 状态指示符替换为更具可读性的版本,例如“更改”/“暂存文件”。
只需更改文本就很容易了,但我也希望它们具有不同的颜色。简单地将一些颜色转义序列(例如\[\e[33m\])粘贴到状态描述字符串中是行不通的;转义序列等只是转储到输出中。
当从 git-prompt.sh 脚本输出时,有什么方法可以让 bash 理解颜色?
【问题讨论】:
看来你必须使用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.html 和https://unix.stackexchange.com/questions/269077/tput-setaf-color-table-how-to-determine-color-codes 了解颜色列表。
【讨论】: