Saya baru saja berlari melintasi tangkapan layar terminal seseorang:

Apakah ada daftar semua karakter yang dapat digunakan dalam Bash prompt, atau bisakah seseorang memberi saya karakter untuk bintang dan panah kanan?
Saya baru saja berlari melintasi tangkapan layar terminal seseorang:

Apakah ada daftar semua karakter yang dapat digunakan dalam Bash prompt, atau bisakah seseorang memberi saya karakter untuk bintang dan panah kanan?
Jawaban:
Anda dapat menggunakan karakter apa pun yang dapat dicetak, tetapi bash tidak keberatan. Anda mungkin akan ingin mengkonfigurasi terminal untuk mendukung Unicode (dalam bentuk UTF-8 ).
Ada banyak karakter di Unicode, jadi di sini ada beberapa tips untuk membantu Anda menelusuri grafik Unicode:
Ǫdan ıadalah huruf latin dengan pengubah; ∉adalah simbol matematika, dan sebagainya.PS Pada Shapecatcher, saya mendapatkan U + 2234 OLEH KARENA ITU untuk ∴, U + 2192 PANAH KANAN untuk →, U + 263F MERCURY untuk ☿dan U + 2605 BLACK STAR untuk ★.
Dalam skrip bash, hingga bash 4.1, Anda bisa menulis byte berdasarkan titik kode, tetapi bukan karakter. Jika Anda ingin menghindari karakter non-ASCII untuk membuat Anda .bashrctangguh terhadap perubahan pengkodean file, Anda harus memasukkan byte yang sesuai dengan karakter ini dalam pengkodean UTF-8. Anda dapat melihat nilai hexidecimal dengan menjalankan echo ∴ → ☿ ★ | hexdump -Cdi terminal UTF-8, misalnya ∴dikodekan oleh \xe2\x88\xb4dalam 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
Sejak bash 4.2, Anda dapat menggunakan \udiikuti oleh 4 digit heksadesimal dalam sebuah $'…'string.
PS1=$'\\[\e[31m\\]\u2234\\[\e[0m\\]\n\u2192 \u263f \\~ \\[\e[31m\\]\u2605 $? \\[\e[0m\\]'
1adalah salah cetak, itu hanya hexdump -C(atau hdsingkatnya pada beberapa sistem).
PS1=$'\u2234\u2192\u263f\u2605'merasa lebih mudah untuk mempertahankan :-)
\uNNNNSintaks adalah fitur $'…'mengutip, bukan ekspansi cepat. Nilai PS1harus mengandung karakter Unicode. $'\u1234'adalah cara untuk menempatkan karakter Unicode ke dalam string.
Anda dapat menemukan simbol unicode di banyak situs, seperti ini: http://panmental.de/symbols/info.htm
Anda hanya perlu memastikan bahwa term Anda mendukung UTF-8 .
\u27A4
Saya suka menggunakan alat-alat ini - mereka memiliki pengalaman yang menyenangkan, dan mudah untuk mencari melalui:
echo ★ | hexdump -C1, saya mendapatkan:hexdump: invalid option -- '1'. Apakah masih akan berfungsi tanpa angka 1 dalam doa?