我想更改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的要求显示如何更改第三个字符的颜色吗?