Je viens de tomber sur une capture d'écran du terminal de quelqu'un:
Existe-t-il une liste de tous les caractères pouvant être utilisés dans une invite Bash, ou quelqu'un peut-il me fournir le caractère de l'étoile et de la flèche droite?
Vous pouvez utiliser n'importe quel caractère imprimable, cela ne dérange pas bash. Vous voudrez probablement configurer votre terminal pour prendre en charge l’ Unicode (sous la forme UTF-8 ).
Unicode contient beaucoup de caractères. Voici donc quelques astuces pour vous aider à rechercher dans les graphiques Unicode:
Ǫ
et ı
sont des lettres latines avec modificateurs; ∉
est un symbole mathématique, etc.PS Sur Shapecatcher, j’ai donc obtenu U + 2234 pour ∴
, U + 2192 FLÈCHE VERS LA DROITE pour →
, U + 263F MERCURY pour ☿
et U + 2605 BLACK STAR pour ★
.
Dans un script bash, jusqu'à bash 4.1, vous pouvez écrire un octet par son point de code, mais pas par un caractère. Si vous souhaitez éviter les caractères non-ASCII pour vous .bashrc
protéger des modifications de codage de fichier, vous devez entrer les octets correspondant à ces caractères dans le codage UTF-8. Vous pouvez voir les valeurs hexadécimales en exécutant echo ∴ → ☿ ★ | hexdump -C
dans un terminal UTF-8, par exemple, il ∴
est codé par \xe2\x88\xb4
en 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
Depuis bash 4.2, vous pouvez utiliser \u
suivi de 4 chiffres hexadécimaux dans une $'…'
chaîne.
PS1=$'\\[\e[31m\\]\u2234\\[\e[0m\\]\n\u2192 \u263f \\~ \\[\e[31m\\]\u2605 $? \\[\e[0m\\]'
echo ★ | hexdump -C1
, je reçois:hexdump: invalid option -- '1'
. Cela fonctionnera-t-il toujours sans le 1 dans l'invocation?1
une faute de frappe, c'est justehexdump -C
(ouhd
pour faire court sur certains systèmes).PS1=$'\u2234\u2192\u263f\u2605'
se sent plus facile à entretenir :-)\uNNNN
syntaxe est une fonctionnalité de$'…'
citation, pas de développement rapide. La valeur dePS1
doit contenir le caractère Unicode.$'\u1234'
est un moyen de mettre le caractère Unicode dans une chaîne.Vous pouvez trouver les symboles Unicode sur de nombreux sites, comme celui-ci: http://panmental.de/symbols/info.htm
Vous devez simplement vous assurer que votre mandat prend en charge UTF-8 .
la source
\u27A4
J'aime utiliser ces outils - ils ont une belle expérience et il est facile de chercher dans:
la source