我想更改 PS1 在 bash 中显示的用户名中特定字母的颜色。
例如:如果我的用户\u
名是rahul
,我希望字母h
为蓝色,其余字母为白色。
我知道 指\u
的是用户名,而为整个“实体”添加颜色是通过添加标签来完成的,例如:[\033[38;5;15m\]
。
如果可能的话,请问我可以知道如何做同样的事情吗?
答案1
如果您不介意不使用转义\u
符,您可以这样做:
PS1="\[\e[0;31m\]${USER:0:1}\[\e[m\]${USER:1} "
这会将提示设置为用户名和空格。用户名的第一个字符将为红色。这通过$USER
用特定范围扩展变量两次来实现。第一次范围只是从 0 到 1。第二次范围是从 1(第二个字符)到末尾。
要获得您请求的提示,请使用以下命令:
PS1="${USER:0:2}\[\e[0;34m\]${USER:2:1}\[\e[m\]${USER:3} "