चूंकि grep
एक GNU प्रोग्राम है, एक अन्य विकल्प स्रोत कोड पर एक नज़र हो सकता है।
आंतरिक रूप से grep परीक्षण या static int color_option
तो के लिए 0
, 1
या 2
।
0
कभी भी रंगीन आउटपुट का उपयोग न करें
1
हमेशा रंगों का उपयोग करें
2
केवल टर्मिनल पर प्रिंट करते समय रंगों का उपयोग करें
अब जब आप --color=auto
अपने CLI पर तर्क के रूप में grep को सौंपते हैं, तो यह आंतरिक रूप से चर color_option
को सेट करता है 2
।
यदि color_option
बराबर होता है 2
grep
तो आगे के परीक्षण कि क्या STDOUT
एक टर्मिनल से जुड़ा हुआ है या उपयोगकर्ता द्वारा अक्षम रंगीन आउटपिट के माध्यम से shell environment variables
। यदि पूर्व एक सच है और रंगीन आउटपुट की अनुमति है, grep
तो यह मूल्यांकन करना जारी रहता है कि कौन से रंगों का उपयोग किया जाना चाहिए और अंत में आपके CLI
रंग में प्रिंट होता है ।
स्रोत: (grep 2.21)
grep.c line 306, 2374, 2440
colorize-posix.c line 36
man isatty
less -R
करते हैं तो आप मैच हाइलाइटिंग प्राप्त कर सकते हैं, लेकिन आपको--color=always
इसे काम करने के लिए grep निर्दिष्ट करने की आवश्यकता है ।