ฉันวิ่งข้ามภาพหน้าจอของเทอร์มินัลของใครบางคน:

มีรายการของตัวละครทั้งหมดที่สามารถใช้ได้ใน Bash prompt หรือใครบางคนสามารถรับตัวละครสำหรับดาวและลูกศรขวาได้ไหม?
ฉันวิ่งข้ามภาพหน้าจอของเทอร์มินัลของใครบางคน:

มีรายการของตัวละครทั้งหมดที่สามารถใช้ได้ใน Bash prompt หรือใครบางคนสามารถรับตัวละครสำหรับดาวและลูกศรขวาได้ไหม?
คำตอบ:
คุณสามารถใช้ตัวอักษรที่พิมพ์ได้ทุบตีไม่เป็นไร คุณอาจต้องการกำหนดค่าเทอร์มินัลของคุณเพื่อรองรับUnicode (ในรูปแบบของUTF-8 )
มีอักขระจำนวนมากใน Unicode ดังนั้นต่อไปนี้เป็นเคล็ดลับที่จะช่วยคุณค้นหาแผนภูมิ Unicode:
Ǫและıเป็นตัวอักษรละตินที่มีตัวดัดแปลง; ∉เป็นสัญลักษณ์ทางคณิตศาสตร์และอื่น ๆPS บน Shapecatcher ผมได้U + 2234 เพราะฉะนั้นสำหรับ∴, U + 2192 ชี้ไปทางขวาลูกศรสำหรับ→, U + 263F MERCURYสำหรับ☿และU + 2605 Black Star★สำหรับ
ในสคริปต์ทุบตีจนถึงทุบตี 4.1 คุณสามารถเขียนไบต์ตามจุดโค้ด แต่ไม่ใช่ตัวอักษร หากคุณต้องการหลีกเลี่ยงอักขระที่ไม่ใช่ ASCII เพื่อให้.bashrcการเปลี่ยนแปลงการเข้ารหัสไฟล์มีความยืดหยุ่นคุณจะต้องป้อนไบต์ที่สอดคล้องกับอักขระเหล่านี้ในการเข้ารหัส UTF-8 คุณสามารถดูค่าเลขฐานสิบหกได้โดยการรันecho ∴ → ☿ ★ | hexdump -Cในเทอร์มินัล UTF-8 เช่น∴ถูกเข้ารหัสโดย\xe2\x88\xb4ใน 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
เนื่องจาก bash 4.2 คุณสามารถใช้\uตามด้วยเลขฐานสิบหก 4 หลักใน$'…'สตริง
PS1=$'\\[\e[31m\\]\u2234\\[\e[0m\\]\n\u2192 \u263f \\~ \\[\e[31m\\]\u2605 $? \\[\e[0m\\]'
1คือการพิมพ์ผิดมันเป็นเพียงแค่hexdump -C(หรือhdสั้น ๆ ในบางระบบ)
PS1=$'\u2234\u2192\u263f\u2605'รู้สึกง่ายต่อการรักษา :-)
\uNNNNไวยากรณ์เป็นคุณลักษณะของการ$'…'อ้างอิงไม่ใช่การขยายพร้อมท์ ค่าของPS1ต้องมีอักขระ Unicode $'\u1234'เป็นวิธีการใส่อักขระ Unicode ลงในสตริง
คุณสามารถค้นหาสัญลักษณ์ยูนิโค้ดในเว็บไซต์จำนวนมากเช่นนี้: http://panmental.de/symbols/info.htm
คุณเพียงแค่ต้องให้แน่ใจว่าคุณระยะรองรับ UTF-8
\u27A4
ฉันชอบใช้เครื่องมือเหล่านี้ - พวกเขามีประสบการณ์ที่ดีและง่ายต่อการค้นหาผ่าน:
echo ★ | hexdump -C1ฉันจะได้รับ:hexdump: invalid option -- '1'. มันจะยังคงทำงานโดยไม่มีหมายเลข 1 ในการร้องขอหรือไม่