Je souhaite modifier la couleur d'une lettre spécifique de mon nom d'utilisateur affiché par PS1 sous BASH.
Exemple: si mon \u
est rahul
, je voudrais que la lettre h
soit de couleur bleue et reste en blanc.
Je sais que \u
fait référence à nom d'utilisateur et que l'ajout d'une couleur à une "entité" entière se fait en ajoutant des balises telles que: [\033[38;5;15m\]
.
Si possible, puis-je savoir comment faire de même?.
Si cela ne vous dérange pas de ne pas utiliser l'échappement \u
, vous pouvez le faire comme ceci:
PS1="\[\e[0;31m\]${USER:0:1}\[\e[m\]${USER:1} "
Cela définira l'invite uniquement avec le nom d'utilisateur et un espace. Le premier caractère du nom d'utilisateur sera en rouge. Cela fonctionne en développant la variable $USER
deux fois avec une plage spécifique. La première fois, la plage va de 0 à 1. La deuxième fois, elle va de 1 (le deuxième caractère) à la fin.
Pour obtenir l'invite comme vous l'avez demandé, utilisez ceci:
PS1="${USER:0:2}\[\e[0;34m\]${USER:2:1}\[\e[m\]${USER:3} "