বাশে কিভাবে একটি আউটপুট সাহসী পাঠ্য হয়?


241

আমি একটি বাশ স্ক্রিপ্ট লিখছি যা স্ক্রিনে কিছু পাঠ্য প্রিন্ট করে:

echo "Some Text"

আমি কি টেক্সট ফর্ম্যাট করতে পারি? আমি এটি সাহসী করতে চাই।

উত্তর:


427

এটি করার সর্বাধিক সামঞ্জস্যপূর্ণ উপায় হ'ল tputটার্মিনালে প্রেরণের জন্য সঠিক ক্রমগুলি আবিষ্কার করতে:

bold=$(tput bold)
normal=$(tput sgr0)

তারপরে আপনি ভেরিয়েবলগুলি ব্যবহার করতে পারেন $boldএবং $normalজিনিসগুলিকে ফর্ম্যাট করতে পারেন :

echo "this is ${bold}bold${normal} but this isn't"

দেয়

এটি সাহসী তবে এটি নয়


2
এটা বেশ নিফটি। যদি আমি সঠিকভাবে বুঝতে পারি তবে, এটি পলায়নকারীদের সন্নিবেশ করানোর সমান, তবে এটি অন্যান্য টার্মিনালগুলিতে (ভিটি 100 নয়) কাজ করবে।
জেমসরাট

এটি সঠিক - এটি TERM এর মান অনুযায়ী উপযুক্ত কোডগুলি সন্ধান করে।
গীতসংহিতা

2
আপনার যদি পাঠ্যটিকে আন্ডারলাইন করার প্রয়োজন হয় তবে আপনি একটি পরিবর্তনশীল যুক্ত করতে পারেন। লক্ষ্য করুন, ব্যাকটিকগুলি মন্তব্য বিন্যাসকরণ থেকে সরানো হচ্ছে। উত্তরে একই ফর্ম্যাটটি ব্যবহার করুন। tput smul
অনুলিপি

3
tputবিভিন্ন কাজের জন্য প্রচুর কমান্ড সহ একটি দুর্দান্ত কমান্ড ।
ড্রয় নোকস

আমি ওপি যা করছে তার অনুরূপ কিছু চেষ্টা করছি, তবে একটি motdফাইল দিয়ে। আমি কীভাবে / কোথায় সেই সংখ্যায় $boldএবং $normalভেরিয়েবলগুলি সংজ্ঞায়িত করব ?
ম্যাট

74

আপনার স্ট্রিংয়ে একটি স্টাইল প্রয়োগ করতে, আপনি এই জাতীয় কমান্ড ব্যবহার করতে পারেন:

echo -e '\033[1mYOUR_STRING\033[0m'

ব্যাখ্যা:

  • প্রতিধ্বনি - -eবিকল্পটির অর্থ পলায়নের (ব্যাকস্ল্যাশড) স্ট্রিংগুলি ব্যাখ্যা করা হবে
  • 3 033 - পালানো ক্রম শৈলীর শুরু / শেষের প্রতিনিধিত্ব করে
  • ছোট হাতের মিটার - ক্রমের শেষ নির্দেশ করে
  • 1 - বোল্ড বৈশিষ্ট্য (আরও নীচে দেখুন)
  • [0 মি - সমস্ত বৈশিষ্ট্য, রঙ, ফর্ম্যাটিং ইত্যাদি পুনরায় সেট করে

সম্ভাব্য পূর্ণসংখ্যাগুলি হ'ল:

  • 0 - সাধারণ স্টাইল
  • 1 - সাহসী
  • 2 - ম্লান
  • 3 - ইটালিক
  • 4 - রেখাঙ্কিত
  • 5 - ঝলকানি
  • 7 - বিপরীত
  • 8 - অদৃশ্য

1
ভাল ব্যাখ্যা। কী কার্যকারিতা [0mঅফার করে তার জন্য চারদিকে
জেরেমি

যদিও এটি হওয়া উচিত\033[0m
জেরেমি

1
3- ইতালি , কমপক্ষে কনসোলে
ডেভিড

একটি শুভেচ্ছা স্ট্রাইকথ্রু উবুন্টু এবং অন্যান্য কয়েকটি জনপ্রিয় প্ল্যাটফর্মগুলিতে সমর্থিত হয়েছিল।
গাark় তারা 1

45

আমি ধরে নিয়েছি বাশ কোনও ভিটি 100-সামঞ্জস্যপূর্ণ টার্মিনালটিতে চলছে যা ব্যবহারকারী স্পষ্টভাবে ফর্ম্যাটের জন্য সমর্থনটি বন্ধ করেন নি।

প্রথমে বিকল্প echoব্যবহার করে বিশেষ অক্ষরের জন্য সমর্থন চালু করুন -e। পরে, অ্যানসি এস্কেপ ক্রম ব্যবহার করুন ESC[1m, যেমন:

echo -e "\033[1mSome Text"

উদাহরণস্বরূপ আনসিসি এস্কেপ সিকোয়েন্সগুলির জন্য আরও এখানে: ascii-table.com/ansi-escape-sequences-vt-100.php


ধন্যবাদ। আমি পালানোর ক্রমের আরও কয়েকটি তালিকা পেয়েছি, তবে আপনি যেটির সাথে লিঙ্ক করেছেন সেটি খুব বিস্তৃত!
জেমসরাট

18
স্ট্রিংয়ের শেষে echo -e "\033[1mSome Text\033[0m"
গা

এই সমাধানটি পিএইচপি-সিএলআইয়ের সাথেও কাজ করে, এটি অন্যান্য সমাধানের বিরুদ্ধে একটি সুবিধা।
ডেভিড

মনে রাখতে \033যদি সমস্যা হয় তবে আপনি \eযেমনটি ব্যবহার করতে পারেনecho -e "\e[1msome text\e[0m"
ফিলিপ আলভারেজ

1
অক্টাল অব্যাহতি ক্রমটি JS (জাভাস্ক্রিপ্ট)
প্যাট-

14

মত মত তত্ত্ব:

# 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-sequences-for-writing-text.html )

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.