Я только что наткнулся на скриншот чьего-то терминала:

Есть ли список всех символов, которые можно использовать в приглашении 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 в вызове?