11

Я пытаюсь выяснить, как я могу настроить приглашение bash моего терминала для использования смайликов. Что я хочу (как видно из примера удара), так это чтобы cwd был отделен от приглашения символом \n и показал зеленое улыбающееся лицо, если команда выполнена успешно, и красное печальное лицо, если оно не удалось.

Есть идеи?

Это было вдохновлено скринкастом Peepcode.

пример

2 ответа2

14

Потратив около получаса на изучение кода andhrimnir и дальнейших исследований, я наконец получил то, что хотел.

PS1="\w \`if [ \$? = 0 ]; then echo -e '\[\e[01;32m\]\n\xE2\x98\xBA'; else echo -e '\[\e[01;31m\]\n\xE2\x98\xB9'; fi\` \[\e[01;34m\]\[\e[00m\]"

Вы можете найти список смайликов здесь, а затем преобразовать их в трехзначный байт-код, который вы видите после символа новой строки.

Чтобы получить cwd , все, что мне нужно было сделать, это использовать \w . Вы также можете показать текущего пользователя, выполнив команду \u@\w , которая выдаст что-то вроде joshsmith@~ .

6

Похоже, что смайлик, показанный выше, является символом юникода 0x263a . Поэтому вам понадобится терминал с поддержкой юникода (не уверен, что терминал.app поддерживает это, но я думаю, что это так).

Вот пример кода, который печатает зеленое улыбающееся лицо для кодов возврата 0 и красные недовольные лица в противном случае.

PS1="\[\e[01;32m\]\u@\h \[\e[01;34m\]\W \`if [ \$? = 0 ]; then echo -e '\[\e[01;32m\]:)'; else echo -e '\[\e[01;31m\]:('; fi\` \[\e[01;34m\]$\[\e[00m\]"

Благодарность идет Фингелю на форумах Arch (он разместил это здесь).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .