PS1がbashで表示しているユーザー名の特定の文字の色を変更したい。
たとえば:\u
がrahul
の場合、h
の文字を青色に、残りを白色にしたいと思います。\u
はユーザー名を指し、[\033[38;5;15m\]
のようなタグを追加することで「エンティティ」全体に色を追加することを知っています。
可能であれば、同じ方法を教えてください。
\u
エスケープを使用しない場合は、次のようにできます。
PS1="\[\e[0;31m\]${USER:0:1}\[\e[m\]${USER:1} "
これにより、プロンプトはユーザー名とスペースのみに設定されます。ユーザー名の最初の文字は赤になります。これは、特定の範囲で$USER
変数を2回展開することで機能します。最初の範囲は0〜1です。2回目の範囲は1(2番目の文字)から最後までです。
あなたが要求したようなプロンプトを取得するには、これを使用します:
PS1="${USER:0:2}\[\e[0;34m\]${USER:2:1}\[\e[m\]${USER:3} "