Właśnie natknąłem się na zrzut ekranu czyjegoś terminalu:
Czy istnieje lista wszystkich znaków, które mogą być użyte w podpowiedzi Bash, czy ktoś może zdobyć dla mnie postać dla gwiazdy i prawej strzałki?
Właśnie natknąłem się na zrzut ekranu czyjegoś terminalu:
Czy istnieje lista wszystkich znaków, które mogą być użyte w podpowiedzi Bash, czy ktoś może zdobyć dla mnie postać dla gwiazdy i prawej strzałki?
Odpowiedzi:
Możesz użyć dowolnej postaci do wydrukowania, bash nie ma nic przeciwko. Prawdopodobnie będziesz chciał skonfigurować swój terminal do obsługi Unicode (w postaci UTF-8 ).
W Unicode jest wiele znaków, więc oto kilka wskazówek, które pomogą ci przeszukiwać wykresy Unicode:
Ǫ
i ı
są literami łacińskimi z modyfikatorami; ∉
jest symbolem matematycznym i tak dalej.PS Na Shapecatcherze dostałem U + 2234 W TYM dla ∴
, U + 2192 STRZAŁKA W PRAWO dla →
, U + 263F MERCURY dla ☿
i U + 2605 BLACK STAR dla ★
.
W skrypcie bash do wersji bash 4.1 możesz napisać bajt po jego punkcie kodowym, ale nie znak. Jeśli chcesz uniknąć znaków spoza ASCII, aby .bashrc
uodpornić się na zmiany w kodowaniu plików, musisz wprowadzić bajty odpowiadające tym znakom w kodowaniu UTF-8. Możesz zobaczyć wartości szesnastkowe, uruchamiając je echo ∴ → ☿ ★ | hexdump -C
w terminalu UTF-8, np. ∴
Jest kodowane przez \xe2\x88\xb4
w 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
Od wersji bash 4.2 możesz używać \u
następujących po nim 4 cyfr szesnastkowych $'…'
.
PS1=$'\\[\e[31m\\]\u2234\\[\e[0m\\]\n\u2192 \u263f \\~ \\[\e[31m\\]\u2605 $? \\[\e[0m\\]'
1
była literówka, to po prostu hexdump -C
(lub hd
w skrócie w niektórych systemach).
PS1=$'\u2234\u2192\u263f\u2605'
czuć się łatwiej w utrzymaniu :-)
\uNNNN
Składnia jest funkcją $'…'
cytowania, a nie szybkiego rozszerzania. Wartość PS1
musi zawierać znak Unicode. $'\u1234'
to sposób na umieszczenie znaku Unicode w ciągu.
Symbole Unicode można znaleźć na wielu stronach, takich jak ten: http://panmental.de/symbols/info.htm
Musisz tylko upewnić się, że Twój termin obsługuje UTF-8 .
\u27A4
lubię korzystać z tych narzędzi - mają miłe wrażenia i można je łatwo przeszukiwać:
echo ★ | hexdump -C1
, mam:hexdump: invalid option -- '1'
. Czy nadal będzie działać bez 1 w wywołaniu?