Bash
bash 提示符中令人敬畏的符號和字元
我剛剛遇到了某人終端的螢幕截圖:
是否有可以在 Bash 提示符中使用的所有字元的列表,或者有人可以給我提供星號和右箭頭的字元嗎?
您可以使用任何可列印的字元,bash 不介意。您可能希望將終端配置為支持Unicode(以UTF-8的形式)。
Unicode 中有很多字元,所以這裡有一些提示可以幫助您搜尋 Unicode 圖表:
- 您可以嘗試在Shapecatcher上繪製角色。它會嘗試辨識您繪製的內容中的 Unicode 字元。
- 您可以嘗試找出字元在哪個塊中。例如,那個看起來很奇怪的符號和那個星星會在一個雜項符號塊中;類似
Ǫ
和的字元ı
是帶有修飾符的拉丁字母;∉
是一個數學符號,等等。- 您可以嘗試在字元描述中想出一個詞,然後在 unicode 符號名稱和描述列表中查找它。Gucharmap或Kcharselect可以提供幫助。
PS 在 Shapecatcher 上,我得到了U+2234 THEREFORE,U+2192 RIGHTWARDS ARROW,
∴
U + 263F MERCURY和U + 2605 BLACK STAR。→``☿``★
在 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\\]'