Ich bin gerade auf einen Screenshot eines Terminals gestoßen:
Gibt es eine Liste aller Zeichen, die in einer Bash-Eingabeaufforderung verwendet werden können, oder kann mir jemand das Zeichen für den Stern und den rechten Pfeil geben?
Ich bin gerade auf einen Screenshot eines Terminals gestoßen:
Gibt es eine Liste aller Zeichen, die in einer Bash-Eingabeaufforderung verwendet werden können, oder kann mir jemand das Zeichen für den Stern und den rechten Pfeil geben?
Antworten:
Sie können jedes druckbare Zeichen verwenden, was Bash nichts ausmacht. Möglicherweise möchten Sie Ihr Terminal für die Unterstützung von Unicode (in Form von UTF-8 ) konfigurieren .
Da Unicode viele Zeichen enthält, finden Sie hier einige Tipps zum Durchsuchen der Unicode-Diagramme:
Ǫ
und ı
sind lateinische Buchstaben mit Modifikatoren; ∉
ist ein mathematisches Symbol und so weiter.PS: Auf Shapecatcher habe ich U + 2234 für ∴
, U + 2192 RIGHTWARDS ARROW für →
, U + 263F MERCURY für ☿
und U + 2605 BLACK STAR für ★
.
In einem Bash-Skript bis Bash 4.1 können Sie ein Byte nach seinem Codepunkt, aber nicht nach einem Zeichen schreiben. Wenn Sie Nicht-ASCII-Zeichen vermeiden möchten, um .bashrc
Änderungen der Dateicodierung zu vermeiden , müssen Sie die diesen Zeichen entsprechenden Bytes in die UTF-8-Codierung eingeben. Sie können die Hexadezimalwerte anzeigen, indem Sie echo ∴ → ☿ ★ | hexdump -C
in einem UTF-8-Terminal ausgeführt werden, das z. B. in UTF-8 ∴
codiert ist \xe2\x88\xb4
.
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
Seit Bash 4.2 können Sie \u
gefolgt von 4 hexadezimalen Ziffern in einer $'…'
Zeichenfolge verwenden.
PS1=$'\\[\e[31m\\]\u2234\\[\e[0m\\]\n\u2192 \u263f \\~ \\[\e[31m\\]\u2605 $? \\[\e[0m\\]'
1
war ein Tippfehler, es ist nur hexdump -C
(oder hd
kurz auf einigen Systemen).
PS1=$'\u2234\u2192\u263f\u2605'
Fühlt sich leichter zu warten an :-)
\uNNNN
Syntax ist eine Funktion des $'…'
Zitierens und nicht der sofortigen Erweiterung. Der Wert von PS1
muss das Unicode-Zeichen enthalten. $'\u1234'
ist eine Möglichkeit, das Unicode-Zeichen in eine Zeichenfolge einzufügen.
Sie finden die Unicode-Symbole auf vielen Websites, z. B. http://panmental.de/symbols/info.htm
Sie müssen nur sicherstellen, dass Ihr Begriff UTF-8 unterstützt .
\u27A4
Ich benutze diese Tools gerne - sie haben eine schöne Erfahrung und es ist einfach zu durchsuchen:
echo ★ | hexdump -C1
, erhalte ich:hexdump: invalid option -- '1'
. Funktioniert es auch ohne die 1 im Aufruf?