कैसे करें: सूक्ति, बोल्ड, इटैलिक, स्ट्राइकथ्रू और ग्नोम टर्मिनल में रंग?
साहसिक
तिरछा
रेखांकित करना
s̶t̶r̶i̶k̶e̶ ̶i̶t̶ ̶l̶i̶k̶̶e̶ ̶i̶t̶s̶ ̶h̶o̶t
background
font
<(इसके मोनो यदि आप नहीं बता सकते)
कैसे करें: सूक्ति, बोल्ड, इटैलिक, स्ट्राइकथ्रू और ग्नोम टर्मिनल में रंग?
साहसिक
तिरछा
रेखांकित करना
s̶t̶r̶i̶k̶e̶ ̶i̶t̶ ̶l̶i̶k̶̶e̶ ̶i̶t̶s̶ ̶h̶o̶t
background
font
<(इसके मोनो यदि आप नहीं बता सकते)
जवाबों:
ANSI / VT100 टर्मिनल और टर्मिनल एमुलेटर केवल काले और सफेद पाठ प्रदर्शित करने में सक्षम नहीं हैं; वे रंगों को प्रदर्शित कर सकते हैं और क्रम से बचने के लिए धन्यवाद पाठ स्वरूपित कर सकते हैं। वे सीक्वेंस एस्केप कैरेक्टर (अक्सर "^ [" या "Esc" द्वारा दर्शाए गए) से बने होते हैं, इसके बाद कुछ अन्य कैरेक्टर होते हैं: "Esc [FormatCodem"।
बैश में, चरित्र को निम्नलिखित सिंटैक्स के साथ प्राप्त किया जा सकता है:
\e
\033
\x1B
कमांड (आसान कॉपी-पेस्ट के लिए):
echo -e "\e[1mbold\e[0m"
echo -e "\e[3mitalic\e[0m"
echo -e "\e[4munderline\e[0m"
echo -e "\e[9mstrikethrough\e[0m"
echo -e "\e[31mHello World\e[0m"
echo -e "\x1B[31mHello World\e[0m"
स्रोत (सभी प्रकार के अग्रभूमि / पृष्ठभूमि रंग कोड सहित): http://misc.flogisoft.com/bash/tip_colors_and_formatting
/apps/gnome-terminal/profiles/Default/font
) है
PS1
(गनोम-टर्मिनल में वास्तव में) उपयोग करना चाहता था क्योंकि नीचे दिए गए पाठ में मिश्रित की तरह यह पढ़ने के लिए कठिन बना रहा है, और निश्चित रूप से हड़ताल के माध्यम से सिर्फ गलत लग रहा था। एक पंक्ति होने से पिछली कमांड्स को स्क्रॉल करने में मदद मिलेगी (जब रंग होता है)।
सिल्वेन के उत्तर का विस्तार करने के लिए, कुछ सहायक कार्य:
ansi() { echo -e "\e[${1}m${*:2}\e[0m"; }
bold() { ansi 1 "$@"; }
italic() { ansi 3 "$@"; }
underline() { ansi 4 "$@"; }
strikethrough() { ansi 9 "$@"; }
red() { ansi 31 "$@"; }
फिर
कुछ जो अभी तक कवर नहीं किया गया है, वह दो या तीन मापदंडों का संयोजन है, जैसे बोल्ड और रेखांकित , पूर्वनिर्धारित रंग में। यह उदाहरण के लिए, 3-तरफा सिंटैक्स द्वारा प्राप्त किया जाता है:
~$ printf "\e[3;4;33mthis is a test\n\e[0m"
का कारण होगा "यह एक परीक्षण है" को पीले रंग ( 33m
), इटैलिक ( 3m
) और रेखांकित ( 4m
) में मुद्रित किया जाना है ।
ध्यान दें कि हर बार दोहराना आवश्यक नहीं है \e[
।
ध्यान दें कि (सिल्वेन के समान) मैंने भी \e[0m
हर बार सेटिंग्स रीसेट करने के लिए एक जोड़ा , क्योंकि अन्यथा पीले रंग और फ़ॉन्ट शैली टर्मिनल में सक्रिय रहेंगे! यह कहने की आवश्यकता नहीं है कि स्क्रिप्ट में रीसेट करने के लिए आपको इन पर पूरी तरह से नजर रखनी होगी, क्योंकि आपकी स्क्रिप्ट का उपयोग करने वाले उपयोगकर्ता इसे नापसंद कर सकते हैं यदि आपकी स्क्रिप्ट स्थायी रूप से टर्मिनल में उनके रंग + शैली सेटिंग्स को संशोधित करती है!
गनोम टर्मिनल 3.28 (वीटीई 0.52), उबंटू 18.04 एलटीएस में डेब्यू करते हुए, कुछ और स्टाइल के लिए सपोर्ट शामिल करता है जिसमें कर्ली और कलर्ड अंडरलाइन्स शामिल हैं, जैसा कि किट्टी में देखा गया है, जैसा कि कोनसोल में देखा गया है, और आखिर में सभी को बहुत ज्यादा पसंद या हेट ब्लिंक विशेषता भी मिलती है।
ये स्वचालित रूप से किसी भी अन्य VTE- आधारित टर्मिनल एमुलेटर (जैसे कि टेलेक्स, टर्मिनेटर, Xfce4- टर्मिनल, गाइड) आदि में काम करते हैं, यह देखते हुए कि VTE कम से कम 0.52 संस्करण में है।
यहां मानक एस्केप अनुक्रमों के साथ-साथ GNOME टर्मिनल (VTE) के परिवर्धन को दर्शाने वाली एक सूची दी गई है। ध्यान दें कि हर शुरुआती अनुक्रम के लिए, मैं केवल उस संपत्ति के समापन अनुक्रम को दिखा रहा हूं, बजाय सामान्य \e[m
या \e[0m
जो सभी विशेष मोड को अक्षम करता है।
echo -e '\e[1mbold\e[22m'
echo -e '\e[2mdim\e[22m'
echo -e '\e[3mitalic\e[23m'
echo -e '\e[4munderline\e[24m'
echo -e '\e[4:1mthis is also underline (new in 0.52)\e[4:0m'
echo -e '\e[21mdouble underline (new in 0.52)\e[24m'
echo -e '\e[4:2mthis is also double underline (new in 0.52)\e[4:0m'
echo -e '\e[4:3mcurly underline (new in 0.52)\e[4:0m'
echo -e '\e[5mblink (new in 0.52)\e[25m'
echo -e '\e[7mreverse\e[27m'
echo -e '\e[8minvisible\e[28m <- invisible (but copy-pasteable)'
echo -e '\e[9mstrikethrough\e[29m'
echo -e '\e[53moverline (new in 0.52)\e[55m'
echo -e '\e[31mred\e[39m'
echo -e '\e[91mbright red\e[39m'
echo -e '\e[38:5:42m256-color, de jure standard (ITU-T T.416)\e[39m'
echo -e '\e[38;5;42m256-color, de facto standard (commonly used)\e[39m'
echo -e '\e[38:2::240:143:104mtruecolor, de jure standard (ITU-T T.416) (new in 0.52)\e[39m'
echo -e '\e[38:2:240:143:104mtruecolor, rarely used incorrect format (might be removed at some point)\e[39m'
echo -e '\e[38;2;240;143;104mtruecolor, de facto standard (commonly used)\e[39m'
echo -e '\e[46mcyan background\e[49m'
echo -e '\e[106mbright cyan background\e[49m'
echo -e '\e[48:5:42m256-color background, de jure standard (ITU-T T.416)\e[49m'
echo -e '\e[48;5;42m256-color background, de facto standard (commonly used)\e[49m'
echo -e '\e[48:2::240:143:104mtruecolor background, de jure standard (ITU-T T.416) (new in 0.52)\e[49m'
echo -e '\e[48:2:240:143:104mtruecolor background, rarely used incorrect format (might be removed at some point)\e[49m'
echo -e '\e[48;2;240;143;104mtruecolor background, de facto standard (commonly used)\e[49m'
echo -e '\e[21m\e[58:5:42m256-color underline (new in 0.52)\e[59m\e[24m'
echo -e '\e[21m\e[58;5;42m256-color underline (new in 0.52)\e[59m\e[24m'
echo -e '\e[4:3m\e[58:2::240:143:104mtruecolor underline (new in 0.52) (*)\e[59m\e[4:0m'
echo -e '\e[4:3m\e[58:2:240:143:104mtruecolor underline (new in 0.52) (might be removed at some point) (*)\e[59m\e[4:0m'
echo -e '\e[4:3m\e[58;2;240;143;104mtruecolor underline (new in 0.52) (*)\e[59m\e[4:0m'
(*) अंडरलाइन के लिए Truecolor मान थोड़ा अनुमानित हैं।
और थोड़ा अजीब है जो इस तस्वीर में बिल्कुल फिट नहीं है, क्योंकि यह एक शैली की तुलना में अधिक कार्यक्षमता है, फिर भी शायद यहां ध्यान देने योग्य है, हाइपरलिंक समर्थन iTerm2 के साथ सह-डिज़ाइन किया गया है, जो गनोम टर्मिनल 3.26 (VTE 0.50) के बाद से उपलब्ध है :
echo -e '\e]8;;http://askubuntu.com\e\\hyperlink\e]8;;\e\\'
इन हार्ड-कोडित अनुक्रमों को प्रतिस्थापित करें:
tput smul # set underline
tput rmul # remove underline
tput smso # set bold on
tput rmso # remove bold
tput setaf 1 #red
tput setaf 2 #green
...
tput cup 0 0 # move to pos 0,0
इन आदेशों के पूर्ण विवरण के लिए "मैन टर्मोफ़" और "मैन टुट" का संदर्भ लें।
उदाहरण :
function f_help
{
c_green=$(tput setaf 2 2>/dev/null)
c_reset=$(tput sgr0 2>/dev/null)
c_bold=$(tput smso 2>/dev/null)
echo "${c_bold}DESCRIPTION${c_reset} : .... ${c_green}My green text${c_reset}My plain text"
}