我刚刚看到某人终端的屏幕截图:
是否有可在 Bash 提示符中使用的所有字符的列表,或者有人可以给我星号和右箭头的字符吗?
答案1
你可以使用任何可打印的字符,bash 不介意。您可能需要配置您的终端以支持统一码(形式为UTF-8)。
Unicode 中有很多字符,因此这里有一些提示可以帮助您搜索 Unicode 图表:
- 您可以尝试在上面绘制角色形状捕手。它会尝试识别您绘制的内容中的 Unicode 字符。
- 你可以尝试找出该角色位于哪个块中。例如,那个看起来很奇怪的符号和那个星星可能位于一个由各种符号组成的块中;
Ǫ
和等字符ı
是带修饰符的拉丁字母;∉
是一个数学符号,等等。 - 您可以尝试在字符描述中想到一个单词,然后在 unicode 符号名称和描述列表中查找它。古恰尔马普或者字符选择可以帮助。
PS 在 Shapecatcher 上,我得到了U+2234 因此为了∴
,U+2192 向右箭头为了→
,U+263F 水星对于☿
和U+2605 黑星为了★
。
在 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
从 bash 4.2 开始,您可以在字符串\u
中使用后跟 4 个十六进制数字$'…'
。
PS1=$'\\[\e[31m\\]\u2234\\[\e[0m\\]\n\u2192 \u263f \\~ \\[\e[31m\\]\u2605 $? \\[\e[0m\\]'
答案2
您可以在很多网站上找到 unicode 符号,例如: http://panmental.de/symbols/info.htm
您只需确保您的术语支持 UTF-8。
答案3
我喜欢使用这些工具——它们有很好的体验,而且很容易搜索:
- unicode字符表
- amp-什么,范围为 unicode 字符