Naf*_*Kay 89 bash prompt unicode
我刚刚看到了某人终端的屏幕截图:

是否有可以在 Bash 提示中使用的所有字符的列表,或者有人可以为我提供星星和右箭头的字符吗?
Gil*_*il' 110
您可以使用任何可打印的字符,bash 不介意。您可能希望将终端配置为支持Unicode(以UTF-8的形式)。
Unicode 中有很多字符,因此这里有一些提示可帮助您搜索 Unicode 图表:
?和?这样的字符是带有修饰符的拉丁字母;?是一个数学符号,等等。PS 在 Shapecatcher 上,我得到了U+2234 THEREFORE for ?,U+2192 RIGHTWARDS ARROW for ?,U+263F MERCURY for?和U+2605 BLACK STAR for ?。
在 bash 脚本中,直到 bash 4.1,您可以通过其代码点写入一个字节,但不能写入一个字符。如果要避免使用非 ASCII 字符以.bashrc适应文件编码更改,则需要在 UTF-8 编码中输入与这些字符对应的字节。您可以通过echo ? ? ? ? | hexdump -C在 UTF-8 终端中运行来查看十六进制值,例如以 UTF-8?编码\xe2\x88\xb4。
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
Run Code Online (Sandbox Code Playgroud)
从 bash 4.2 开始,您可以\u在$'…'字符串中使用后跟 4 个十六进制数字。
PS1=$'\\[\e[31m\\]\u2234\\[\e[0m\\]\n\u2192 \u263f \\~ \\[\e[31m\\]\u2605 $? \\[\e[0m\\]'
Run Code Online (Sandbox Code Playgroud)
jas*_*yan 13
您可以在许多网站上找到 unicode 符号,例如:http : //panmental.de/symbols/info.htm
您只需要确保您的术语支持 UTF-8。