एक बैश प्रॉम्प्ट में भयानक प्रतीक और अक्षर


81

मैं बस किसी के टर्मिनल के एक स्क्रीनशॉट पर भाग गया:

एक सत्र का स्क्रीनशॉट एक तारांकन और तीर के साथ एक संकेत दिखा रहा है

क्या उन सभी पात्रों की एक सूची है, जिनका उपयोग बैश प्रॉम्प्ट में किया जा सकता है, या कोई मुझे स्टार और सही तीर के लिए वर्ण प्राप्त कर सकता है?

जवाबों:


104

आप किसी भी प्रिंट करने योग्य चरित्र का उपयोग कर सकते हैं, बैश कोई बात नहीं। आप शायद यूनिकोड ( UTF-8 के रूप में ) का समर्थन करने के लिए अपने टर्मिनल को कॉन्फ़िगर करना चाहेंगे ।

यूनिकोड में बहुत सारे पात्र हैं, इसलिए यहां यूनिकोड चार्ट के माध्यम से खोज करने में आपकी मदद करने के लिए कुछ सुझाव दिए गए हैं:

  • आप Shapecatcher पर चरित्र को आकर्षित करने का प्रयास कर सकते हैं । यह आपके द्वारा खींचे गए एक यूनिकोड चरित्र को पहचानने की कोशिश करता है।
  • आप यह पता लगाने की कोशिश कर सकते हैं कि चरित्र किस ब्लॉक में है; उदाहरण के लिए, वह अजीब दिखने वाला प्रतीक और वह सितारा विविध प्रतीकों के एक ब्लॉक में होगा; वर्ण Ǫऔर ıसंशोधक के साथ लैटिन अक्षर हैं; एक गणितीय प्रतीक है, और इसी तरह।
  • आप वर्ण के विवरण में एक शब्द के बारे में सोचने की कोशिश कर सकते हैं और इसे यूनिकोड के प्रतीक नामों और विवरणों की सूची में देख सकते हैं। Gucharmap या Kcharselect मदद कर सकता है।

पुनश्च पर Shapecatcher, मुझे मिल गया U + 2234 इसलिए के लिए , U + 2192 दायां ARROW के लिए , U + 263F पारा के लिए और U + 2605 BLACK स्टार के लिए

एक बाश स्क्रिप्ट में, 4.1 को कोसने के लिए, आप इसके कोड बिंदु द्वारा एक बाइट लिख सकते हैं, लेकिन चरित्र नहीं। यदि आप .bashrcएन्कोडिंग परिवर्तन दर्ज करने के लिए अपने लचीला बनाने के लिए गैर-ASCII वर्णों से बचना चाहते हैं , तो आपको UTF-8 एन्कोडिंग में इन वर्णों के अनुरूप बाइट दर्ज करने की आवश्यकता होगी। आप echo ∴ → ☿ ★ | hexdump -CUTF-8 टर्मिनल में चलकर हेक्सिडेसिमल मान देख सकते हैं , उदाहरण के लिए \xe2\x88\xb4UTF-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

4.2 के बाद से, आप \uएक $'…'स्ट्रिंग में 4 हेक्साडेसिमल अंकों का पालन कर सकते हैं ।

  PS1=$'\\[\e[31m\\]\u2234\\[\e[0m\\]\n\u2192 \u263f \\~ \\[\e[31m\\]\u2605 $? \\[\e[0m\\]'

हम्म। जब मैं दौड़ता हूं echo ★ | hexdump -C1, मुझे मिलता है hexdump: invalid option -- '1':। क्या यह अभी भी आह्वान में 1 के बिना काम करेगा?
Naftuli Kay

2
@TKKocheran यह 1एक टाइपो था, यह सिर्फ hexdump -C(या hdकुछ प्रणालियों पर संक्षिप्त के लिए) है।
गिल्स

इसके अलावा, आप कर सकते हैं: PS1=$'\u2234\u2192\u263f\u2605':-) बनाए रखने के लिए आसान लग रहा है
चटाई

1
Shapecatcher कमाल है! इसे इंगित करने के लिए धन्यवाद
सियामोरे

1
@FaRR सस्ता \uNNNNवाक्यविन्यास $'…'उद्धरण की एक विशेषता है , त्वरित विस्तार की नहीं। मान में PS1यूनिकोड वर्ण होना चाहिए। $'\u1234'यूनिकोड वर्ण को एक स्ट्रिंग में रखने का एक तरीका है।
गाइल्स

12

आप कई साइटों पर यूनिकोड के प्रतीक पा सकते हैं, जैसे यह एक: http://panmental.de/symbols/info.htm

आपको बस यह सुनिश्चित करना है कि आपका शब्द UTF-8 का समर्थन करता है


मैं इनमें से किसी एक पात्र से कैसे बचूंगा? यानी\u27A4
Naftuli Kay

2
@ उत्तर देखें, या यह: stackoverflow.com/questions/602912/…
jasonwryan

आप सब पर 65000+ यूनिकोड अंक देख सकते हैं utf8-chartable.de (कोड अंक मान के संदर्भ में "UTF8" "यूनिकोड" का पर्याय है।)
गोल्डीलॉक्स

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.