Existe uma postagem existente no Unix e Linux sobre a inclusão de caracteres Unicode no prompt do Bash, mas o método fornecido para usar o código UTF-16 (sintaxe \uXXXX
) não funciona para mim.
Vamos tomar esta seta como exemplo:
Como posso ver, deve haver 3 maneiras de fazer caracteres Unicode no prompt do Bash PS1:
- Valor octal UTF-8 - neste caso:
\342\236\244
- Valor UTF-8 HEX - neste caso:
\xe2\x9e\xa4
- Valor UTF-16 HEX (combinado) - neste caso:
\u27A4
No entanto, apenas a primeira opção funciona no meu prompt do Ubuntu, conforme indicado na imagem abaixo:
Explicação:
- Com
PS1='[\u@\h \W]\$ \342\236\244 '
, o caractere Unicode é aplicado corretamente. - Com
PS1='[\u@\h \W]\$ \xe2\x9e\xa4 '
, a string exata é aplicada. - Com
PS1='[\u@\h \W]\$ \u27A4 '
, ele aplica meu nome de usuário (am
) e o valor exato27A4
.
Eu entendo que \u
é um atalho Bash para nome de usuário, e é por isso que estou confuso, a outra resposta afirma que isso funciona - para mim não.
Existe uma maneira de fazer a sintaxe UTF-16 funcionar para PS1 no Ubuntu (já que é mais curta e fácil de ler)? Estou no servidor Ubuntu 22.04.1.
Se você quiser usar
\xHH
ou\uHHHH
bash sequências em seu prompt bonito, use uma$
citação simples antes da primeira como esta:ou
Claro, com aspas simples, você não precisa
\
antes de$
, mas com$'...'
definição, é melhor colocar dois\\
antes de cadaPS1
campo especial (u
,h
,W
no seu caso)