चूंकि 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 निर्दिष्ट करने की आवश्यकता है ।