यह विचार मेरे आवेदन के लिए है कि आउटपुट को कलर नहीं किया जाए, अगर प्रोग्राम प्रिंट नहीं कर सकता है, तो कह सकते हैं कि क्रॉन जॉब से फाइल में आउटपुट लॉग करना, रंगीन आउटपुट लॉग करने की आवश्यकता नहीं है, लेकिन मैन्युअल रूप से चलने पर, मुझे देखना पसंद है आउटपुट रंगीन।
इस उपयोग के मामले के लिए, आमतौर पर कौन से प्रोग्राम करते हैं (जैसे GNU ls या GNU grep --color=auto
) रंगों का उपयोग करना है यदि उनका आउटपुट टर्मिनल पर जा रहा है, और अन्यथा कोई रंग नहीं। ANSI रंग बदलने वाले दृश्यों का समर्थन नहीं करने वाले टर्मिनल काफी दुर्लभ हैं जो अपने उपयोगकर्ताओं को डिफ़ॉल्ट विकल्प को ओवरराइड करने के लिए स्वीकार्य हैं। किसी भी स्थिति में, सुनिश्चित करें कि आपके आवेदन में रंगों को चालू या बंद करने का विकल्प है।
शेल स्क्रिप्ट में, [ -t 1 ]
परीक्षण करने के लिए उपयोग करें कि मानक आउटपुट एक टर्मिनल है।
# option processing has set $color to yes, no or auto
if [ $color = auto ]; then
if [ -t 1 ]; then color=yes; else color=no; fi
fi
C API का उपयोग करके एक प्रोग्राम से, कॉल करें isatty(1)
।
# option processing has set use_color to 0 for no, 1 for yes or 2 for auto
if (use_color == 2) use_color = isatty(1);