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 .bashrc
tangguh 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 -C
di terminal UTF-8, misalnya ∴
dikodekan oleh \xe2\x88\xb4
dalam 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 \u
diikuti oleh 4 digit heksadesimal dalam sebuah $'…'
string.
PS1=$'\\[\e[31m\\]\u2234\\[\e[0m\\]\n\u2192 \u263f \\~ \\[\e[31m\\]\u2605 $? \\[\e[0m\\]'
1
adalah salah cetak, itu hanya hexdump -C
(atau hd
singkatnya pada beberapa sistem).
PS1=$'\u2234\u2192\u263f\u2605'
merasa lebih mudah untuk mempertahankan :-)
\uNNNN
Sintaks adalah fitur $'…'
mengutip, bukan ekspansi cepat. Nilai PS1
harus 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?