我想更改PS1在bash中显示的用户名中特定字母的颜色。
例如:如果我\u
是rahul
,我希望字母h
为蓝色,其余部分为白色。
我确实知道,\u
指的是用户名,并通过添加像这样的标签为整个“实体”添加颜色[\033[38;5;15m\]
。
如果可以的话,请问我该怎么做。
我想更改PS1在bash中显示的用户名中特定字母的颜色。
例如:如果我\u
是rahul
,我希望字母h
为蓝色,其余部分为白色。
我确实知道,\u
指的是用户名,并通过添加像这样的标签为整个“实体”添加颜色[\033[38;5;15m\]
。
如果可以的话,请问我该怎么做。
Answers:
如果您不介意不使用\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} "
echo -e
,例如echo -e "${USER:0:2}\e[0;34m${USER:2:1}\e[m${USER:3} "
ra
而不是${USER:0:2}
,等等
${USER:1}
对于除第一个字符以外的整个用户名。不错的解决方案!您还可以根据OP的要求显示如何更改第三个字符的颜色吗?