जवाबों:
ऐसा करने का सबसे संगत तरीका tput
टर्मिनल पर भेजने के लिए सही दृश्यों की खोज करना है:
bold=$(tput bold)
normal=$(tput sgr0)
तब आप चर का उपयोग कर सकते हैं $bold
और $normal
चीजों को प्रारूपित कर सकते हैं:
echo "this is ${bold}bold${normal} but this isn't"
देता है
यह साहसिक है, लेकिन यह नहीं है
tput smul
motd
फ़ाइल के साथ कुछ इसी तरह की कोशिश कर रहा हूं । उस उदाहरण में मैं $bold
और $normal
चर को कैसे / कहां परिभाषित करेगा ?
अपनी स्ट्रिंग पर एक शैली लागू करने के लिए, आप एक कमांड का उपयोग कर सकते हैं जैसे:
echo -e '\033[1mYOUR_STRING\033[0m'
स्पष्टीकरण:
-e
विकल्प का मतलब है कि बच गए (बैकस्लेस्ड) स्ट्रिंग्स की व्याख्या की जाएगीसंभावित पूर्णांक हैं:
[0m
प्रदान करता है के लिए चारों ओर देख रहा था और यह इसे अच्छी तरह से बताता है
\033[0m
3
- इटैलिक , कम से कम कोनोलास में
मुझे लगता है कि bash एक vt100- संगत टर्मिनल पर चल रहा है जिसमें उपयोगकर्ता ने स्वरूपण के लिए समर्थन को स्पष्ट रूप से बंद नहीं किया था।
सबसे पहले, विकल्प echo
का उपयोग करके विशेष वर्णों के लिए समर्थन चालू करें -e
। बाद में, एसीसी एस्केप अनुक्रम का उपयोग करें ESC[1m
, जैसे:
echo -e "\033[1mSome Text"
उदाहरण के लिए एसीसी से बच दृश्यों पर अधिक: ascii-table.com/ansi-escape-fterences-vt-100.php
echo -e "\033[1mSome Text\033[0m"
अन्यथा आपके टर्मिनल की निम्नलिखित लाइनें भी बोल्ड में होंगी
\033
आप इसका उपयोग कर सकते हैं \e
जैसेecho -e "\e[1msome text\e[0m"
इस तरह सिद्धांत में:
# BOLD
$ echo -e "\033[1mThis is a BOLD line\033[0m"
This is a BOLD line
# Using tput
tput bold
echo "This" #BOLD
tput sgr0 #Reset text attributes to normal without clear.
echo "This" #NORMAL
# UNDERLINE
$ echo -e "\033[4mThis is a underlined line.\033[0m"
This is a underlined line.
लेकिन व्यवहार में इसके बजाय "उच्च तीव्रता" रंग के रूप में व्याख्या की जा सकती है।
(स्रोत: http://unstableme.blogspot.com/2008/01/ansi-escape-fterences-for-writing-xtxt.html )