2009-07-06 5 views
8

मैं स्क्रीन पर आउटपुट करने से पहले किसी भी प्रोग्राम को स्क्रीन पर आउटपुट करना चाहता हूं, आउटपुट पकड़ सकता हूं, और कुछ कीवर्ड को रंगीन करना चाहता हूं।आप बैश खोल में प्रोग्राम आउटपुट को स्वचालित रूप से कैसे रंगते हैं?

bash# <program> 
blah blah blah  <-- this output has no color 

बनाम

bash# <program> 
blah blah blah  <-- this output is colorful 

आदर्श रूप में यह कोई बात नहीं क्या कार्यक्रम है: उदाहरण के लिए, यहाँ सामान्य कार्यक्रम उत्पादन है। मैं सिर्फ अपने कंसोल में अधिक रंग शामिल करने के लिए एक अच्छा तरीका ढूंढ रहा हूं।

संपादित करें: क्षमा करें, स्पष्ट होना चाहिए था। मैं सिर्फ शैल स्क्रिप्ट आउटपुट को रंगीन करने की कोशिश नहीं कर रहा हूं।

+0

पीट सुझाव आजमाएँ: yourprogram | पावती --passthru - रंग "(कीवर्ड 1 | कीवर्ड 2 | कीवर्ड 3)" –

उत्तर

7
#!/bin/sh 
redf=$(tput setaf 1) 
redb=$(tput setab 1) 
reset=$(tput op) 
echo "${redf}red${reset} in front, ${redb}red${reset} in back" 

टर्मिनल क्षमताओं की लंबी सूची के लिए terminfo देखें। प्रत्यय -m के साथ एक $TERM (जैसे ansi-m) का अर्थ है स्क्रीन मोनोक्रोम है, लेकिन जब तक रंग काम करता है के रूप में, निम्न स्ट्रिंग क्षमताओं खाली नहीं होना चाहिए:

 
     enter_bold_mode    bold   md  turn on bold (extra 
                  bright) mode 
     enter_italics_mode   sitm   ZH  Enter italic mode 
     enter_reverse_mode   rev   mr  turn on reverse 
                  video mode 
     orig_pair      op   op  Set default pair to 
                  its original value 
     set_a_background    setab  AB  Set background 
                  color to #1, using 
                  ANSI escape 
     set_a_foreground    setaf  AF  Set foreground 
                  color to #1, using 
                  ANSI escape 

रंग 0-7 काफी मानक हैं: काले, लाल, हरा, पीला, नीला, मैजेंटा, सायन, सफेद। इसके अलावा मौजूद नहीं हो सकता है या अधिक परिवर्तनीय हो सकता है।

3

आप एक रंगीन स्क्रिप्ट लिख सकते हैं। वहाँ एक उत्कृष्ट गाइड यहाँ http://www.faqs.org/docs/abs/HTML/colorizing.html

+0

उह ... वास्तव में लोगों को एएनएसआई का उपयोग करने के लिए नहीं कहना चाहिए या वीटी 10 एक्स मैन्युअल रूप से बच निकलता है। टर्मिनैप और टर्मिनो इस तरह के टर्मिनल-विशिष्ट जानकारी के सभी प्रकार के आयोजन के उद्देश्य से * eons * के लिए मौजूद हैं। – ephemient

+0

@ एपमेन्टेंट, सिवाय इसके कि कोई भी दशकों से वास्तविक टर्मिनल का उपयोग नहीं करता है, और अब यह सिर्फ एक सॉफ्टवेयर मानक है: यह मानना ​​ठीक है कि एक टर्मिनल एमुलेटर VT10x संगत है, 'ncurses' समस्याओं से बचने के लिए। – Hibou57

+0

वैसे, कुछ अच्छे संदर्भ: ftp: //ftp.cs.utk।edu/पब/shuford/टर्मिनल / – Hibou57

5

ack प्रोग्राम है जो नियमित अभिव्यक्ति का रंग हाइलाइटिंग इसके उत्पादन में से मेल खाता है करता है ग्रेप का एक संस्करण है। आप इसे अपने लिए रंग करने के लिए उपयोग कर सकते हैं, या आप इसके पर्ल कोड का अध्ययन कर सकते हैं।

एक और विकल्प जीएनयू के grep को --color=always या --color=auto तर्क के साथ पाइप करना होगा।

0

सरल और प्रतिभाशाली generic colouriser (homepage) का प्रयास करें:

जेनेरिक Colouriser अभी तक अपने लॉगफ़ाइल या आदेशों के उत्पादन में सौंदर्यीकरण के लिए एक और colouriser (अजगर में लिखा है)।

यह डेबियन में उपलब्ध है और कई उपकरणों के लिए पहले से कॉन्फ़िगर है:

$ grc traceroute www.linux.org 

enter image description here

$ grc tail -25 /var/log/syslog 

enter image description here

संबंधित मुद्दे