Я только что наткнулся на скриншот чьего-то терминала:
Есть ли список всех символов, которые можно использовать в приглашении Bash, или кто-то может получить мне символ для звезды и стрелки вправо?
Я только что наткнулся на скриншот чьего-то терминала:
Есть ли список всех символов, которые можно использовать в приглашении Bash, или кто-то может получить мне символ для звезды и стрелки вправо?
Ответы:
Вы можете использовать любой печатный символ, bash не против. Возможно, вы захотите настроить свой терминал для поддержки Unicode (в форме UTF-8 ).
В Юникоде много символов, поэтому вот несколько советов, которые помогут вам искать в диаграммах Юникода:
Ǫ
и ı
латинские буквы с модификаторами; ∉
это математический символ и так далее.PS На Shapecatcher я получил U + 2234 ПОТОМУ для ∴
, U + 2192 СТРЕЛКА ВПРАВО для →
, U + 263F MERCURY для ☿
и U + 2605 BLACK STAR для ★
.
В bash-скрипте, вплоть до bash 4.1, вы можете написать байт по его кодовой точке, но не по символу. Если вы не хотите, чтобы символы не ASCII делали вашу систему .bashrc
устойчивой к изменениям кодировки файлов, вам необходимо ввести байты, соответствующие этим символам, в кодировку UTF-8. Вы можете увидеть шестнадцатеричные значения, запустив echo ∴ → ☿ ★ | hexdump -C
терминал UTF-8, например ∴
, закодированный \xe2\x88\xb4
в 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
Начиная с bash 4.2, вы можете использовать \u
после 4 шестнадцатеричные цифры в $'…'
строке.
PS1=$'\\[\e[31m\\]\u2234\\[\e[0m\\]\n\u2192 \u263f \\~ \\[\e[31m\\]\u2605 $? \\[\e[0m\\]'
1
была опечатка, просто hexdump -C
(или, если hd
коротко, в некоторых системах).
PS1=$'\u2234\u2192\u263f\u2605'
чувствует себя легче поддерживать :-)
\uNNNN
Синтаксис - это функция $'…'
цитирования, а не быстрое расширение. Значение PS1
должно содержать символ Unicode. $'\u1234'
способ поместить символ Unicode в строку
Вы можете найти символы Unicode на многих сайтах, таких как этот: http://panmental.de/symbols/info.htm
Вам просто нужно убедиться, что ваш термин поддерживает UTF-8 .
\u27A4
Мне нравятся эти инструменты - у них хороший опыт, и их легко искать:
echo ★ | hexdump -C1
, я получаю:hexdump: invalid option -- '1'
. Будет ли все еще работать без 1 в вызове?