कुछ XTerm / ANSI- संगत टर्मिनलों (जैसे xterm
और gnome-terminal
) पर, आप बड़े पैलेट का उपयोग करके रंग सेट कर सकते हैं, फिर डिफ़ॉल्ट 8/16-रंग पैलेट (उदाहरण के लिए 88-रंगों, 256-रंगों या 16777216-रंगों (RGB) पैलेट का उपयोग करके ; दोनों 256-रंगों और 16777216-रंग (RGB) पैलेट दोनों xterm
का gnome-terminal
समर्थन करते हैं; ध्यान रखें कि शेल इसे ओवरराइड कर सकता है (यह उदाहरण के लिए मामला है zsh
)।
यहाँ 256-रंग पैलेट समर्थन के साथ XTerm / ANSI- संगत टर्मिनलों में उनके ANSI रंग कोड के साथ 256-रंग पैलेट में रंगों को सूचीबद्ध करने के लिए एक स्क्रिप्ट दी गई है:
#!/bin/bash
for((i=16; i<256; i++)); do
printf "\e[48;5;${i}m%03d" $i;
printf '\e[0m';
[ ! $((($i - 15) % 6)) -eq 0 ] && printf ' ' || printf '\n'
done
आप अग्रभूमि करने के लिए या पृष्ठभूमि में रंग लागू करना चाहते हैं पर निर्भर करता है, एक का उपयोग <fg_bg>
का मूल्य 38
या 48
निम्न आदेश में (क्रमशः):
printf '\e[<fg_bg>;5;<ANSI_color_code>m'
उदाहरण के लिए, अग्रभूमि रंग ( <fg_bg>
= 38
) को लाल ( <ANSI_color_code>
= 196
) और पृष्ठभूमि रंग ( <fg_bg>
= 48
) को काला ( <ANSI_color_code>
= 0
) सेट करने के लिए:
printf '\e[38;5;196m Foreground color: red\n'
printf '\e[48;5;0m Background color: black\n'
यह printf '\e[K'
पूरी लाइन पर लागू करने के लिए पृष्ठभूमि रंग के लिए और कर्सर पर लागू करने के लिए अग्रभूमि रंग के क्रम में प्रॉम्प्ट को फिर से तैयार करना आवश्यक है:
एक संगत टर्मिनल में एएनएसआई रंग कोड के बजाय आरजीबी मूल्यों का उपयोग करके एक ही चीज को पूरा किया जा सकता है; इस बात पर निर्भर करता है कि आप रंग को अग्रभूमि या पृष्ठभूमि पर लागू करना चाहते हैं , निम्नलिखित कमांड में या (क्रमशः) के <fg_bg>
मूल्य का उपयोग करें :38
48
printf '\e[<fg_bg>;2;<R>;<G>;<B>m'
उदाहरण के लिए, अग्रभूमि का रंग ( <fg_bg>
= 38
) लाल ( <R>
= 255
, <G>
= 0
, <B>
= 0
) और पृष्ठभूमि का रंग ( <fg_bg>
= 48
) काले से ( <R>
= 0
, <G>
= 0
, <B>
= 0
) पर सेट करने के लिए:
printf '\e[38;2;255;0;0m Foreground color: red\n'
printf '\e[48;2;0;0;0m Background color: black\n'
फिर से, printf '\e[K'
पूरी लाइन पर लागू करने के लिए पृष्ठभूमि रंग के लिए और कर्सर पर लागू करने के लिए अग्रभूमि रंग के क्रम में प्रॉम्प्ट को फिर से तैयार करना आवश्यक है:
या तो तरीकों का उपयोग करके, आप printf '\e[0m'
सभी विशेषताओं को रीसेट करने के लिए उपयोग कर सकते हैं :