परिचय
RSI echo
कमांड किसी दिए गए स्ट्रिंग को आउटपुट करता है मानक आउटपुट पाइप, आमतौर पर टर्मिनल की ओर इशारा करते हुए। हालांकि मानक आउटपुट पाइप अन्य इंटरफेस को इंगित कर सकता है - the echo
कमांड का उपयोग आमतौर पर टर्मिनल में संदेशों को प्रिंट और प्रदर्शित करने के लिए किया जाता है। डिफ़ॉल्ट रूप से, प्रदर्शित संदेश का पाठ टर्मिनल में अन्य पाठ का रंग प्राप्त करता है (जो अपने आप में अनुकूलन योग्य है)। हालाँकि - ऐसे कई तरीके हैं जिनसे आप के आउटपुट रंग को बदल सकते हैं echo
- दोनों अलग-अलग स्ट्रिंग्स के लिए और संपूर्ण संदेशों के लिए।
इस संक्षिप्त मार्गदर्शिका में, हम इस पर एक नज़र डालेंगे कि आप के आउटपुट रंग को कैसे बदल सकते हैं
echo
Linux-आधारित सिस्टम में, ANSI एस्केप कोड का उपयोग करते हुए,tput
और आप इस प्रक्रिया को बैश स्क्रिप्ट में कम वर्बोज़ कैसे बना सकते हैं।
एएनएसआई एस्केप कोड के साथ आउटपुट रंग बदलें
रंग बदलने का सबसे आसान तरीका एएनएसआई एस्केप सीक्वेंस/कोड है। सभी एएनएसआई एस्केप कोड से शुरू होते हैं Escape
चरित्र, जिसे विभिन्न स्वरूपों में दर्शाया जा सकता है - 27
दशमलव में, x1B
हेक्साडेसिमल में, नियंत्रण कुंजी के रूप में ^[
या, 33
अष्टक प्रारूप में। अनुक्रम तब आदेश द्वारा पीछा किया जाता है:
33[command
जहां उद्घाटन ब्रैकेट (नियंत्रण अनुक्रम परिचयकर्ता) वैकल्पिक है, लेकिन कमांड को एस्केप कैरेक्टर से अलग करने में मदद करता है। जब आप एक डालते हैं रंग संकेत कमांड के रूप में, यह आने वाले टेक्स्ट का रंग बदलता है:
33[0;34
0;34
उदाहरण के लिए, नीले रंग का कोड है। इससे अकेले आप टेक्स्ट का रंग बदल सकते हैं echo
संग:
33[0;34Text
कहा पे Text
नीले रंग का होगा। वैकल्पिक रूप से, प्रिंट करने के लिए एक साधारण बैश स्क्रिप्ट पर विचार करें "फ्रांस में स्वागत है" फ्रांसीसी ध्वज के रंगों में:
#!/bin/bash
BLUE='33[0;34m'
WHITE= '33[0;37m'
RED= '33[0;31m'
echo -e "${Blue}Welcome ${WHITE}to ${RED}France"
वैकल्पिक -e
का झंडा echo
कमांड आपको विशेष वर्णों का उपयोग करने की अनुमति देता है जैसे n
(newline) और t
(टैब) इनपुट स्ट्रिंग के अंदर।
एक बार जब आप स्क्रिप्ट चलाते हैं:
$ ./colors.sh
इसका परिणाम होता है:
एएनएसआई कोड रंग तक सीमित नहीं हैं - बल्कि शैली के लिए भी लागू किए जा सकते हैं। कोड 0..9
पाठ शैलियों का प्रतिनिधित्व करते हैं, जबकि कोड 30...37
रंगों का प्रतिनिधित्व करें:
रंग | संहिताओं | पाठ शैलियाँ | संहिताओं |
काली | 30 | सरल पाठ | 0 |
लाल | 31 | बोल्ड अक्षर | 1 |
हरा | 32 | कम तीव्रता वाला टेक्स्ट | 2 |
भूरा/नारंगी | 33 | पाठ को रेखांकित करें | 4 |
नीला | 34 | ब्लिंकिंग टेक्स्ट | 5 |
बैंगनी | 35 | अदृश्य पाठ | 8 |
सियान | 36 | स्ट्राइकथ्रू टेक्स्ट | 9 |
हल्का भूरा | 37 |
आइए इनमें से कुछ विकल्पों का पता लगाने के लिए एक बैश स्क्रिप्ट बनाएं:
#!/bin/bash
echo -e "33[0;33mSample text"
echo -e "33[1;33mBold text"
echo -e "33[2;33mLow intensity text"
echo -e "33[4;33mUnderline text"
echo -e "33[5;33mBlinking text"
echo -e "33[8;33mInvisible text"
echo -e "33[9;33mStrikethrough text"
इस स्क्रिप्ट को चलाने का परिणाम है:
सर्वोत्तम प्रथाओं, उद्योग-स्वीकृत मानकों और शामिल चीट शीट के साथ, Git सीखने के लिए व्यावहारिक मार्गदर्शिका देखें। Googling Git कमांड को रोकें और वास्तव में सीखना यह!
इसी तरह, आप कोड का उपयोग करके इन टेक्स्ट की पृष्ठभूमि का रंग बदल सकते हैं 40..47
:
रंग | संहिताओं |
काली | 40 |
लाल | 41 |
हरा | 42 |
भूरा/नारंगी | 43 |
नीला | 44 |
बैंगनी | 45 |
सियान | 46 |
हल्का भूरा | 47 |
किसी दिए गए स्ट्रिंग की पृष्ठभूमि को बदलना उसी नियम पर उबलता है जैसे कि फ़ॉन्ट रंग बदलते समय - कोड ही व्यवहार को बदल देता है:
#!/bin/bash
BLUE='33[0;44m'
BLACK='33[0;30m'
WHITE='33[0;30;47m'
RED='33[0;41m'
echo -e "${BLUE}Welcome ${WHITE}to ${RED}France"
नोट: अंगूठे के एक नियम के रूप में - आप 10 जोड़कर फ़ॉन्ट रंगों को पृष्ठभूमि रंगों में अनुवाद कर सकते हैं। 30
काला फ़ॉन्ट रंग है, 40
काला पृष्ठभूमि रंग है।
tput के साथ आउटपुट रंग बदलें
एएनएसआई कोड का एक विकल्प का उपयोग कर रहा है tput
आदेश:
$ tput setaf color_code
setf
8 रंगों के लिए अनुमति देता है, जबकि setaf
256 रंगों की अनुमति देता है, इसलिए आप जिस कमांड का उपयोग कर रहे हैं, उसके आधार पर आप बीच में जा सकते हैं 0..7
और 0..255
रंग कोड के रूप में। दोनों आदेश समर्पित 0..7
एक ही रंग कोड के लिए, जबकि साथ setaf
, 8..15
उच्च-तीव्रता वाले रंग हैं, और 16..231
पहले 8 के अलग-अलग रंग हैं, और 232..255
ग्रेस्केल रंग हैं:
क्रेडिट: विकिपीडिया
अंत में, tput
आपको अन्य आदेशों के साथ पृष्ठभूमि का रंग बदलने, बोल्ड जोड़ने, तीव्रता कम करने आदि की भी अनुमति देता है:
पाठ शैलियाँ | कमानों |
अग्रभूमि रंग | सेताफ |
पृष्ठभूमि का रंग | सेटाब |
कोई शैली नहीं | एसजीवी0 |
बोल्ड अक्षर | पिन |
कम-तीव्रता वाला टेक्स्ट | धुंधला |
पाठ को रेखांकित करें | स्मुलु |
ब्लिंकिंग टेक्स्ट | झपकी |
उल्टा पाठ | फिरना |
आइए एक और स्क्रिप्ट बनाते हैं जो उपयोग करती है tput
आउटपुट रंग बदलने के लिए echo
:
#!/bin/bash
YELLOW=`tput setaf 3`
echo "${YELLOW}Changing"
WHITE=`tput setaf 7 bold`
echo "${WHITE}Colors"
BLUE=`tput setaf 4 smul`
echo "${BLUE}With tput"
CYAN=`tput setaf 6 blink`
echo "${CYAN}is less"
RED=`tput setab 1 setaf 7`
echo "${RED}verbose!"
यह स्क्रिप्ट टर्मिनल में निम्न आउटपुट प्रिंट करेगी:
tput कमांड एक साधारण रंग कोड के माध्यम से किसी भी रंग को प्रिंट करने का एक आसान तरीका प्रदान करता है। आइए अब एक स्क्रिप्ट बनाएं जो tput कमांड के लिए उपलब्ध हर रंग कोड को प्रिंट कर सके:
#!/bin/bash
tput init
end = $ (($ (tput colors) - 1))
w = 1
for c
in $ (seq 0 $end)
do
eval "$(printf " tput setaf % 3 s " " $c ")"
echo - n "$_"
[[$c - ge $ ((w * 2))]]
offset = 2 || offset = 0
[[$ (((c + offset) % (w - offset))) - eq $ (((w - offset) - 1))]]
echo
done
tput init
यह 0 से 255 रंग और उनके कोड प्रिंट करेगा:
निष्कर्ष
इस संक्षिप्त मार्गदर्शिका में - हमने इस पर एक नज़र डाली है कि आप का रंग कैसे बदल सकते हैं echo
लिनक्स में आउटपुट - एएनएसआई एस्केप सीक्वेंस का उपयोग करना और tput
आदेश।
हमने यह भी पता लगाया है कि आप बैश वैरिएबल, बैकग्राउंड कलर्स और स्टाइल टेक्स्ट का उपयोग करके प्रक्रिया को कम वर्बोज़ कैसे बना सकते हैं।