क्या रंगीन शेल आउटपुट के लिए कोई मैनुअल पेज है?


23

आप जानते हैं, उदाहरण के लिए, विशेष वर्ण अनुक्रमों द्वारा निर्मित रंगयुक्त उत्पादन:

echo -e "\e[34m Hello\n \e[0m"

यह नीले रंग में "हैलो" शब्द का उत्पादन करेगा। ऐसा करने के लिए मुझे वेब पर खोजना होगा, और यह कठिन है, क्योंकि विभिन्न स्रोत कुछ अलग कह सकते हैं। मैंने सोचा, कि कुछ मैनुअल होना चाहिए, लेकिन मैं उन्हें नहीं ढूंढ सका। यहां तक ​​कि apropos colorया कुछ इसी तरह के साथ। तो, सवाल है - मुझे विश्वसनीय मैनुअल कहां मिल सकते हैं?


2
आप ANSI एस्केप कोड्स पर प्रलेखन की तलाश कर रहे हैं। (जब मुझे एक को देखने की आवश्यकता हो तो मैं विकिपीडिया पृष्ठ का उपयोग कर सकता हूं।)
21

ध्यान दें कि जरूरी नहीं कि आपको उन सीक्वेंस से बचना है। कई गोले (tsh, zsh, fish कम से कम) में रंगों का उत्पादन करने के लिए बिना किसी क्रम को लिखने के लिए रंगों का उत्पादन करने के लिए बिलिन समर्थन है।
स्टीफन चेजलस 22

जवाबों:


27

इस पृष्ठ में सूचीबद्ध करने के लिए जानकारी के कई स्रोत हैं:

  • कमांड ASCII 27 (ऑक्टल 33 या "\ 033") के रूप में रेंडर करने के लिए echo -eएक एक्सटेंशन का उपयोग करता है \e। इन उपयोगों को मुद्रित करने का पोर्टेबल तरीका printf(POSIX)। मानक echo(POSIX) के साथ तुलना करें ।
  • आपके उदाहरण के रूप में फिर से लिखा जा सकता है

    printf "\033[34m Hello\n \033[0m"

  • रंग से बचने के लिए मानक ECMA-48 (कोडेड कैरेक्टर सेट के लिए नियंत्रण कार्य) है।
  • ECMA-48, 8.3.117 में SGR - SELECT GRAPHIC RENDITION सूचियों को 8 अग्रभूमि और 8 पृष्ठभूमि रंगों को सेट करने के लिए नियंत्रण अनुक्रमों को सूचीबद्ध करता है।
  • यह कोड 39/49 "डिफ़ॉल्ट प्रदर्शन रंग (कार्यान्वयन-परिभाषित)" और 38/48 "भविष्य की मानक योग्यता के लिए आरक्षित है, जो आईएसओ 8613-6 [CCITT सिफारिश T.416] में निर्दिष्ट वर्ण अग्रभूमि रंग सेट करने के लिए लक्षित है।" यही है, एक अन्य संगठन द्वारा एक सिफारिश की गई है लेकिन यह (अब तक, 24 साल बाद) मानक का हिस्सा नहीं था।
  • इसे बारीकी से पढ़ने पर, आप देख सकते हैं कि मानक कई स्थानों पर अस्पष्ट है, अलग-अलग व्याख्याओं की अनुमति देता है। यह इन नियंत्रण अनुक्रमों के सिंटैक्स का वर्णन करता है लेकिन उनके व्यवहार का वर्णन नहीं करता है । उसके लिए, आपको संबंधित टर्मिनलों के लिए दस्तावेज पर जाना होगा।
  • एक्सटर्म के लिए प्रलेखन एक्सटर्म कंट्रोल सीक्वेंस में पाया जाता है , जो http://vt100.net पर डीईसी प्रलेखन के साथ एक परिचित मानता है
  • अन्य टर्मिनलों के लिए, उनके मार्गदर्शन पृष्ठों नियंत्रण (में लिनक्स कंसोल के लिए के रूप में किया गणना कर सकते हैं console_codes )।
  • अन्य टर्मिनल खुद को "xterm" के रूप में दस्तावेज करते हैं; चर्चा के लिए नियंत्रणों की गणना करके xterm FAQ FAQ की तुलना करें । सौभाग्य से, रंग नियंत्रण ज्यादातर संगत हैं (लेकिन ncurses FAQ देखें मेरा टर्मिनल कुछ अनचाहे स्थानों को दिखाता है )।
  • आप मैन्युअल पृष्ठों को भी पढ़ सकते हैं tput, जो आपको terminfoशेल स्क्रिप्ट में क्षमताओं का उपयोग करने की अनुमति देता है । आपके उदाहरण के रूप में फिर से लिखा जा सकता है

    printf '%s\n' "$(tput setaf 4)Hello$(tput setaf 0)"
    
  • बैश प्रॉम्प्ट HOWTO और एडवांस्ड बैश-स्क्रिप्टिंग गाइड जैसे कुछ स्रोतों में रंग का उल्लेख है, लेकिन (यहां तक ​​कि) एक नियम के रूप में अंतराल और चूक हैं और ECMA-48 के संबंध में सहायक नहीं हैं।

  • अधिकांश अन्य स्रोत जो आपको अन्य स्रोतों (जैसे कि उद्धृत), आदि से वेब-खोज की प्रतिलिपि के साथ मिलेंगे, और एक नियम के रूप में वास्तविक मानक पर थोड़ा ध्यान दें।

ECMA-48 में संबंधित अनुभाग 8.3.117 से लगता है - "SGR - SELECT GRAPHIC RENDITION"। इसमें "ब्लू" शब्द का केवल उल्लेख है, और वहां पाए गए कोड कम से कम मेरे एक्सटर्म में काम करते हैं।
l0b0

हाँ - मैं एक स्पष्टीकरण जोड़ दूँगा।
थॉमस डिक्की

2
यह वास्तव में बहुत अच्छा जवाब है - काश सभी जवाब आपके जैसे हों
सर्जियस

1
xterm 256-रंग मोड का भी समर्थन करता है, संभवतः यह ऊपर दिए गए किसी एक मैनुअल में प्रलेखित है।
sendmoreinfo

Wnnnetherland.com/journal/… को उपयोगी जानकारी के एक समूह के लिए देखें जिसमें gc पैकेज शामिल है जो कमांड आउटपुट के साथ हर तरह की रंगाई कर सकता है।
जो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.