如何在 Bash 脚本中访问 Solarized 颜色值

如何在 Bash 脚本中访问 Solarized 颜色值

我正在尝试bash PS1根据日晒主题。 我有晒干安装并运行iTerm2,但迄今为止未能创建与主题相匹配的自定义 PS1 提示。

我曾尝试使用如下值来表示青色,但最终得到的不是无颜色就是错误的颜色。 \033[0;37m

我从以下链接获得了上述值。 https://github.com/altercation/solarized/tree/master/iterm2-colors-solarized

答案1

如果你问的是ANSI 转义序列,这里有一些提示:

0 Black
1 Red
2 Green
3 Yellow/Brown
4 Blue
5 Pink
6 Cyan
7 White/Gray

它们每个都应用于前景色或背景色。

3_  sets grim    foreground color
9_  sets intense foreground color
4_  sets grim    background color
10_ sets intense background color
# 3-4, 9-10 and a code for a color.

例如,通过这样做,printf "\033[1;44;97m"您可以使背景44(暗蓝色)变成前景97(深白色)。

您还应该使用其他有用的颜色代码:

0 reset all colors
1 bold
3 italics
4 underline
5 blink
7 inverse

为了使使用起来更舒适,您可以创建一组别名,例如fiblue fred bblack等。您还可以将以下函数添加到您的bashrc

ansi() {
    printf "\033[$1"
}

因此,\033[1;35m您不必手动编写ansi '1;35m',而且使用该函数编写颜色别名会更舒服。

您还应该注意,设置背景颜色会重置已经设置的前景色,因此您应该使用\033[misc;background;foregroundm

这样,你就可以随意绘画了PS1。以下是示例:

PS1="\033[0;1;36m\u\033[0;1m:\033[1;103;30m\t\033[0m \033[1;92m\$\033[0m \r"

另请参阅bash_it

希望我回答了您的问题。

相关内容