I just ran across a screenshot of someone's terminal:

Is there a list of all of the characters which can be used in a Bash prompt, or can someone get me the character for the star and the right arrow?
I just ran across a screenshot of someone's terminal:

Is there a list of all of the characters which can be used in a Bash prompt, or can someone get me the character for the star and the right arrow?
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:
Ǫ and ı are latin letters with modifiers; ∉ is a mathematical symbol, and so on.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:
PS1=$'\u2234\u2192\u263f\u2605'feels easier to maintain :-) – mat Mar 20 '13 at 11:14bash --version GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu), andlocaleshowsLC_CTYPE="en_US.UTF-8", but when I want to print\uxxxxin PS1 string, I got username as output and the unicode character is not recognized... – WesternGun Feb 15 '18 at 15:09\uNNNNsyntax is a feature of$'…'quoting, not of prompt expansion. The value ofPS1must contain the Unicode character.$'\u1234'is a way to put the Unicode character into a string. – Gilles 'SO- stop being evil' Feb 15 '18 at 17:37\uXXXXwith$' '.... that's why. Thx! – WesternGun Feb 16 '18 at 01:31