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?
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?
Réponses:
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\\]'
1
une faute de frappe, c'est juste hexdump -C
(ou hd
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 de PS1
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 .
\u27A4
J'aime utiliser ces outils - ils ont une belle expérience et il est facile de chercher dans:
echo ★ | hexdump -C1
, je reçois:hexdump: invalid option -- '1'
. Cela fonctionnera-t-il toujours sans le 1 dans l'invocation?