Як ви можете налаштувати термінал bash підказки з смайликами?


11

Я намагаюся з'ясувати, як я можу налаштувати bash-запит мого терміналу для використання смайликів. Я хочу (як видно з прикладу удар), щоб cwd було відокремлено від підказки на n і показувало зелену смайлик, якщо команда виконала успіх, і червоне сумне обличчя, якщо воно не вдалося.

Будь-які ідеї?

Це було натхнене скрінкастом Peepcode.

Example

Відповіді:


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\]"

Ви можете знайти Список смайликів тут і потім конвертувати їх до 3-значний байт-код, який ви бачите після символу нового рядка.

Щоб отримати cwdВсе, що я повинен був зробити, це використовувати \w. Також можна показати поточного користувача \u@\w, який видавав би щось подібне joshsmith@~.


6

Схоже, що смайлик, показаний вище, є символом unicode 0x263a. Таким чином, вам знадобиться термінал, що підтримує Юнікод (Не впевнений, що terminal.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\]"

Кредит надходить на Fingel на форумах Arch (він розмістив його тут ).


Чудова робота над зразком if / then. Мені цікаво, як зробити новий рядок, видалити $, насправді використовує символ Unicode і робить його повним cwd.
Josh Smith

... і через годину відповів на моє запитання (завдяки вам!).
Josh Smith

1
Рада, що я міг допомогти! Там є багато інформації в нитку на посилання, яке я розмістив вище, якщо ви хочете отримати глибше в звичай $PS1 речі.
jake-low

Так, половина моїх досліджень розпочалася на цій темі. Супер корисний. Крім того, для тих, хто хоче піти більш глибоко в командному рядку, Peepcode має великий просунутий screencast.
Josh Smith
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.