Awesome symbols and characters in a bash prompt
You can use any printable character, bash doesn't mind. You'll probably want to configure your terminal to support Unicode (in the form of UTF-8).
There are a lot of characters in Unicode, so here are a few tips to help you search through the Unicode charts:
- You can try to draw the character on Shapecatcher. It tries to recognize a Unicode character in what you draw.
- You can try to figure out which block the character is in. For example, that weird-looking symbol and that star would be in a block of miscellaneous symbols; characters like
Ǫ
andı
are latin letters with modifiers;∉
is a mathematical symbol, and so on. - You can try to think of a word in the description of the character and look for it in a list of unicode symbol names and descriptions. Gucharmap or Kcharselect can help.
P.S. On Shapecatcher, I got U+2234 THEREFORE for ∴
, U+2192 RIGHTWARDS ARROW for →
, U+263F MERCURY for ☿
and U+2605 BLACK STAR for ★
.
In a bash script, up to bash 4.1, you can write a byte by its code point, but not a character. If you want to avoid non-ASCII characters to make your .bashrc
resilient to file encoding changes, you'll need to enter the bytes corresponding to these characters in the UTF-8 encoding. You can see the hexidecimal values by running echo ∴ → ☿ ★ | hexdump -C
in a UTF-8 terminal, e.g. ∴
is encoded by \xe2\x88\xb4
in 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
Since bash 4.2, you can use \u
followed by 4 hexadecimal digits in a $'…'
string.
PS1=$'\\[\e[31m\\]\u2234\\[\e[0m\\]\n\u2192 \u263f \\~ \\[\e[31m\\]\u2605 $? \\[\e[0m\\]'
You can find the unicode symbols on lots of sites, like this one: http://panmental.de/symbols/info.htm
You just have to make sure that your term supports UTF-8.
i like using these tools — they have a nice experience, and it's easy to search through:
- unicode character table
- amp-what, scoped to unicode characters