Tôi vừa chạy qua một ảnh chụp màn hình của thiết bị đầu cuối của ai đó:
Có một danh sách tất cả các ký tự có thể được sử dụng trong dấu nhắc Bash hay ai đó có thể đưa tôi ký tự cho ngôi sao và mũi tên phải không?
Tôi vừa chạy qua một ảnh chụp màn hình của thiết bị đầu cuối của ai đó:
Có một danh sách tất cả các ký tự có thể được sử dụng trong dấu nhắc Bash hay ai đó có thể đưa tôi ký tự cho ngôi sao và mũi tên phải không?
Câu trả lời:
Bạn có thể sử dụng bất kỳ ký tự có thể in, bash không bận tâm. Bạn có thể muốn định cấu hình thiết bị đầu cuối của mình để hỗ trợ Unicode (dưới dạng UTF-8 ).
Có rất nhiều ký tự trong Unicode, vì vậy đây là một vài mẹo để giúp bạn tìm kiếm thông qua các biểu đồ Unicode:
Ǫ
và ı
là các chữ cái Latin có bổ nghĩa; ∉
là một biểu tượng toán học, v.v.PS On Shapecatcher, tôi đã U + 2234 DO ĐÓ cho ∴
, U + 2192 sang phải ARROW Trang cho →
, U + 263F MERCURY cho ☿
và U + 2605 BLACK STAR cho ★
.
Trong tập lệnh bash, lên đến bash 4.1, bạn có thể viết một byte theo điểm mã của nó, nhưng không phải là ký tự. Nếu bạn muốn tránh các ký tự không phải ASCII để .bashrc
thay đổi mã hóa tệp, bạn cần nhập các byte tương ứng với các ký tự này trong mã hóa UTF-8. Bạn có thể thấy các giá trị thập lục phân bằng cách chạy echo ∴ → ☿ ★ | hexdump -C
trong thiết bị đầu cuối UTF-8, ví dụ ∴
được mã hóa bằng \xe2\x88\xb4
trong 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
Kể từ bash 4.2, bạn có thể sử dụng \u
theo sau 4 chữ số thập lục phân trong một $'…'
chuỗi.
PS1=$'\\[\e[31m\\]\u2234\\[\e[0m\\]\n\u2192 \u263f \\~ \\[\e[31m\\]\u2605 $? \\[\e[0m\\]'
1
là một lỗi đánh máy, nó chỉ hexdump -C
(hoặc hd
viết tắt của một số hệ thống).
PS1=$'\u2234\u2192\u263f\u2605'
cảm thấy dễ dàng hơn để duy trì :-)
\uNNNN
Cú pháp là một tính năng của $'…'
trích dẫn, không phải là mở rộng nhanh chóng. Giá trị PS1
phải chứa ký tự Unicode. $'\u1234'
là một cách để đặt ký tự Unicode thành một chuỗi.
Bạn có thể tìm thấy các biểu tượng unicode trên nhiều trang web, như trang này: http://panmental.de/symbols/info.htmlm
Bạn chỉ cần đảm bảo rằng thuật ngữ của bạn hỗ trợ UTF-8 .
\u27A4
tôi thích sử dụng các công cụ này - chúng có trải nghiệm thú vị và thật dễ dàng để tìm kiếm thông qua:
echo ★ | hexdump -C1
, tôi nhận được :hexdump: invalid option -- '1'
. Nó sẽ vẫn hoạt động mà không có 1 trong lời mời?