回答:
\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} "
echo -e
たとえば、次のようにテストできますecho -e "${USER:0:2}\e[0;34m${USER:2:1}\e[m${USER:3} "
ra
代わりに${USER:0:2}
など、
${USER:1}
で始まる文字列全体を出力できます。素敵な解決策!OPのリクエストに応じて、3番目のキャラクターの色を変更する方法も教えてください。