Acabei de encontrar uma captura de tela do terminal de alguém:
Existe uma lista de todos os personagens que podem ser usados em um prompt do Bash, ou alguém pode obter o personagem para a estrela e a seta para a direita?
Acabei de encontrar uma captura de tela do terminal de alguém:
Existe uma lista de todos os personagens que podem ser usados em um prompt do Bash, ou alguém pode obter o personagem para a estrela e a seta para a direita?
Respostas:
Você pode usar qualquer caractere imprimível, o bash não se importa. Você provavelmente desejará configurar seu terminal para suportar Unicode (na forma de UTF-8 ).
Existem muitos caracteres no Unicode, então, aqui estão algumas dicas para ajudá-lo a pesquisar nos gráficos Unicode:
Ǫ
e ı
são letras latinas com modificadores; ∉
é um símbolo matemático e assim por diante.PS No Shapecatcher, obtive U + 2234 POR ISSO por ∴
, U + 2192 SETA PARA A DIREITA por →
, U + 263F MERCURY por ☿
e U + 2605 BLACK STAR por ★
.
Em um script bash, até o bash 4.1, você pode escrever um byte por seu ponto de código, mas não por um caractere. Se você deseja evitar caracteres não ASCII para tornar suas .bashrc
alterações na codificação de arquivos resilientes, será necessário inserir os bytes correspondentes a esses caracteres na codificação UTF-8. Você pode ver os valores hexidecimais executando echo ∴ → ☿ ★ | hexdump -C
em um terminal UTF-8, por exemplo, ∴
é codificado \xe2\x88\xb4
em UTF-8.
if [[ $LC_CTYPE =~ '\.[Uu][Tt][Ff]-?8' ]]; then
PS1=$'\\[\e[31m\\]\xe2\x88\xb4\\[\e[0m\\]\n\xe2\x86\x92 \xe2\x98\xbf \\~ \\[\e[31m\\]\xe2\x98\x85 $? \\[\e[0m\\]'
fi
Desde o bash 4.2, você pode usar \u
seguido de 4 dígitos hexadecimais em uma $'…'
sequência.
PS1=$'\\[\e[31m\\]\u2234\\[\e[0m\\]\n\u2192 \u263f \\~ \\[\e[31m\\]\u2605 $? \\[\e[0m\\]'
1
foi um erro de digitação, é apenas hexdump -C
(ou hd
abreviado em alguns sistemas).
PS1=$'\u2234\u2192\u263f\u2605'
sente - se mais fácil de manter :-) #
\uNNNN
sintaxe é um recurso de $'…'
citação, não de expansão imediata. O valor de PS1
deve conter o caractere Unicode. $'\u1234'
é uma maneira de colocar o caractere Unicode em uma string.
Você pode encontrar os símbolos unicode em muitos sites, como este: http://panmental.de/symbols/info.htm
Você só precisa garantir que seu termo seja compatível com UTF-8 .
\u27A4
eu gosto de usar essas ferramentas - elas têm uma experiência agradável e é fácil pesquisar:
echo ★ | hexdump -C1
, eu recebo:hexdump: invalid option -- '1'
. Ainda funcionará sem o 1 na invocação?