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 -Cin 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 \ugefolgt von 4 hexadezimalen Ziffern in einer $'…'Zeichenfolge verwenden.
PS1=$'\\[\e[31m\\]\u2234\\[\e[0m\\]\n\u2192 \u263f \\~ \\[\e[31m\\]\u2605 $? \\[\e[0m\\]'
1war ein Tippfehler, es ist nur hexdump -C(oder hdkurz auf einigen Systemen).
PS1=$'\u2234\u2192\u263f\u2605'Fühlt sich leichter zu warten an :-)
\uNNNNSyntax ist eine Funktion des $'…'Zitierens und nicht der sofortigen Erweiterung. Der Wert von PS1muss 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?