在 bash 的 PS1 中更改用户名中特定字母的颜色

在 bash 的 PS1 中更改用户名中特定字母的颜色

我想更改 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} "

相关内容