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

Rah*_*waj 9 command-line bash bashrc ps1

我想更改 PS1 在 bash 中显示的用户名中特定字母的颜色。

例如:如果我\urahul,我希望字母h为蓝色,其余为白色。

我知道,\u是指用户名和添加颜色到整个“实体”是通过添加标签,如完成:[\033[38;5;15m\]

如果可能的话,我能知道如何做同样的事情吗?

Seb*_*ark 13

如果你不介意不使用\u转义,你可以这样做:

PS1="\[\e[0;31m\]${USER:0:1}\[\e[m\]${USER:1} "
Run Code Online (Sandbox Code Playgroud)

这会将提示设置为仅用户名和空格。用户名的第一个字符将是红色的。这是通过在$USER特定范围内将变量扩展两次来实现的。第一次范围是从 0 到 1。第二次是从 1(第二个字符)到结尾。

要获得您要求的提示,请使用以下命令:

PS1="${USER:0:2}\[\e[0;34m\]${USER:2:1}\[\e[m\]${USER:3} "
Run Code Online (Sandbox Code Playgroud)

  • 这是否必须使用各种不同的用户名(例如为每个人突出显示第三个字母)?如果只是为了你,一个更简单的方法是硬编码你的用户名的字母,例如 `ra` 而不是 `${USER:0:2}` 等。 (2认同)