কিভাবে লিনাক্সে ইকো আউটপুট রঙ পরিবর্তন করতে হয়


1734

আমি ইকো কমান্ড ব্যবহার করে টার্মিনালে একটি পাঠ্য মুদ্রণের চেষ্টা করছি।

আমি লেখাটি একটি লাল রঙে মুদ্রণ করতে চাই। আমি এটা কিভাবে করবো?


30
এই লিঙ্কটি বেশ সহায়ক: Misc.flogisoft.com/bash/tip_colors_and_ formattting
Pithikos

এটি একবার দেখুন, যা আমি সেখানে আপনার প্রশ্নের জবাব দিয়েছি: stackoverflow.com/a/48216286/3782119
শায়ান আমানী

উত্তর:


2289

আপনি এই এএনএসআই এস্কেপ কোডগুলি ব্যবহার করতে পারেন :

Black        0;30     Dark Gray     1;30
Red          0;31     Light Red     1;31
Green        0;32     Light Green   1;32
Brown/Orange 0;33     Yellow        1;33
Blue         0;34     Light Blue    1;34
Purple       0;35     Light Purple  1;35
Cyan         0;36     Light Cyan    1;36
Light Gray   0;37     White         1;37

এবং তারপরে এগুলি আপনার স্ক্রিপ্টে ব্যবহার করুন:

#    .---------- constant part!
#    vvvv vvvv-- the code from above
RED='\033[0;31m'
NC='\033[0m' # No Color
printf "I ${RED}love${NC} Stack Overflow\n"

যা loveলাল রঙে মুদ্রণ করে।

@ জেমস-লিমের মন্তব্য থেকে, আপনি যদি echoকমান্ডটি ব্যবহার করে থাকেন তবে ব্যাকস্ল্যাশ এড়াতে অনুমতি দেওয়ার জন্য -e পতাকা ব্যবহার করতে ভুলবেন না

# Continued from above example
echo -e "I ${RED}love${NC} Stack Overflow"

( "\n"আপনি অতিরিক্ত খালি লাইন যোগ না করতে চাইলে প্রতিধ্বনি ব্যবহার করার সময় যুক্ত করবেন না )


11
আমার জন্য কাজ করে না - আউটপুট:\e[0;31mHello Stackoverflow\e[0m
বেন হ্যারল্ড

171
আপনি কি "-e" দিয়ে চেষ্টা করেছেন? এটি echoব্যাকস্ল্যাশ পালাতে সক্ষম করতে বলে ।
জেমস লিম

141
ম্যাকোএসএক্স-এ \x1Bপরিবর্তে ব্যবহার করে \e\033সমস্ত প্ল্যাটফর্মের জন্য ঠিক আছে।
জিয়াও

4
পিঁপড়ের সম্পত্তি ফাইলটিতে এস্যাকপের জন্য ইউনিকোড ব্যবহার করুন, উদাহরণস্বরূপ লাল = \ u001b [0; 31 মি
চমকপ্রদ লিনাক্স ব্যবহারকারী

20
টুপুটের জন্য তৈরি মিসানফোর্ডের মতো এখানেও "এএনএসআই-রেইনবো"for (( i = 30; i < 38; i++ )); do echo -e "\033[0;"$i"m Normal: (0;$i); \033[1;"$i"m Light: (1;$i)"; done
প্রত্যেকে 21

970

আপনি সমস্ত ধরণের জিনিসের জন্য টার্মিনাল নিয়ন্ত্রণ কোড তৈরি করতে দারুণ tputকমান্ড ( Ignacio এর উত্তরে প্রস্তাবিত ) ব্যবহার করতে পারেন ।


ব্যবহার

নির্দিষ্ট tput সাব-কমান্ডগুলি পরে আলোচনা করা হবে।

সরাসরি

tputকমান্ডের অনুক্রমের অংশ হিসাবে কল করুন :

tput setaf 1; echo "this is red text"

এর ;পরিবর্তে &&যদি ব্যবহার করুনtputত্রুটি পাঠ্যটি এখনও দেখায় ।

শেল ভেরিয়েবল

আর একটি বিকল্প শেল ভেরিয়েবল ব্যবহার করা হয়:

red=`tput setaf 1`
green=`tput setaf 2`
reset=`tput sgr0`
echo "${red}red text ${green}green text${reset}"

tputঅক্ষর ক্রম উত্পাদন করে যা টার্মিনাল দ্বারা একটি বিশেষ অর্থ হিসাবে ব্যাখ্যা করা হয়। সেগুলি তাদের দেখানো হবে না। মনে রাখবেন যে এগুলি ফাইলগুলিতে সংরক্ষণ করা যেতে পারে বা টার্মিনাল ব্যতীত অন্যান্য প্রোগ্রাম দ্বারা ইনপুট হিসাবে প্রক্রিয়া করা যায়।

কমান্ড প্রতিস্থাপন

কমান্ড প্রতিস্থাপন ব্যবহার করে tputসরাসরি আপনার echoস্ট্রিংয়ের আউটপুট toোকানো আরও সুবিধাজনক হতে পারে :

echo "$(tput setaf 1)Red text $(tput setab 7)and white background$(tput sgr 0)"

উদাহরণ

উপরের কমান্ড উবুন্টুতে এটি তৈরি করে:

রঙিন টার্মিনাল পাঠ্যের স্ক্রিনশট


অগ্রভূমি এবং পটভূমি রঙ কমান্ড

tput setab [1-7] # Set the background colour using ANSI escape
tput setaf [1-7] # Set the foreground colour using ANSI escape

রঙগুলি নিম্নরূপ:

Num  Colour    #define         R G B

0    black     COLOR_BLACK     0,0,0
1    red       COLOR_RED       1,0,0
2    green     COLOR_GREEN     0,1,0
3    yellow    COLOR_YELLOW    1,1,0
4    blue      COLOR_BLUE      0,0,1
5    magenta   COLOR_MAGENTA   1,0,1
6    cyan      COLOR_CYAN      0,1,1
7    white     COLOR_WHITE     1,1,1

এছাড়াও রঙিন সেটিং ফাংশনের অ-এএনএসআই সংস্করণ রয়েছে ( setbপরিবর্তে setabএবং setfপরিবর্তে)setaf ) যা বিভিন্ন নম্বর ব্যবহার করে, এখানে দেওয়া হয়নি।

পাঠ্য মোড কমান্ড

tput bold    # Select bold mode
tput dim     # Select dim (half-bright) mode
tput smul    # Enable underline mode
tput rmul    # Disable underline mode
tput rev     # Turn on reverse video mode
tput smso    # Enter standout (bold) mode
tput rmso    # Exit standout mode

কার্সার মুভমেন্ট কমান্ড

tput cup Y X # Move cursor to screen postion X,Y (top left is 0,0)
tput cuf N   # Move N characters forward (right)
tput cub N   # Move N characters back (left)
tput cuu N   # Move N lines up
tput ll      # Move to last line, first column (if no cup)
tput sc      # Save the cursor position
tput rc      # Restore the cursor position
tput lines   # Output the number of lines of the terminal
tput cols    # Output the number of columns of the terminal

কমান্ডগুলি সাফ করুন এবং .োকান

tput ech N   # Erase N characters
tput clear   # Clear screen and move the cursor to 0,0
tput el 1    # Clear to beginning of line
tput el      # Clear to end of line
tput ed      # Clear to end of screen
tput ich N   # Insert N characters (moves rest of line forward!)
tput il N    # Insert N lines

অন্যান্য আদেশ

tput sgr0    # Reset text format to the terminal's default
tput bel     # Play a bell

সঙ্গে Compiz টলমলে জানালা , belকমান্ড একটি দ্বিতীয় ব্যবহারকারীর দৃষ্টি আকর্ষণ করার জন্য টার্মিনাল টলিতে টলিতে চলা করে তোলে।


স্ক্রিপ্ট

tput প্রতি লাইনে একটি কমান্ডযুক্ত স্ক্রিপ্টগুলি গ্রহণ করে, যা আগে ক্রমে কার্যকর করা হয় tput প্রস্থান ।

মাল্টিলাইন স্ট্রিং প্রতিধ্বনি করে এবং পাইপ দিয়ে অস্থায়ী ফাইলগুলি এড়িয়ে চলুন:

echo -e "setf 7\nsetb 1" | tput -S  # set fg white and bg red

আরো দেখুন

  • দেখা man 1 tput
  • দেখুন man 5 terminfoকমান্ড এবং এই বিকল্পগুলি আরও বিশদের সম্পূর্ণ তালিকার জন্য। (সংশ্লিষ্ট tputকমান্ডটি Cap-nameবৃহত্তর টেবিলের কলামে তালিকাভুক্ত হয়েছে যা ৮১ লাইনে শুরু হয়েছে।)

13
দুর্দান্ত উত্তর। এই তিনিই আমাকে সবচেয়ে বেশি সাহায্য করেছেন। আমি যেটা ভাবছিলাম সে সম্পর্কে যে কেউ ভাবছিলেন, তিনি $()হলেন একটি কমান্ড প্রতিস্থাপন । সবগুলি tput af 1রঙ কোড স্ট্রিং তৈরি করে তবে কোডগুলি মুদ্রণযোগ্য অক্ষর নয়, সুতরাং tput af 1একা টাইপ করলে আউটপুটের ফাঁকা লাইন তৈরি হয় will
ক্রিস মিডলটন 15

5
দ্রষ্টব্য: আপনি যদি সাইগউইন ব্যবহার করছেন এবং যদি টিপুট ইনস্টল না করেনncurses
Enrico

3
টুপুট ক্র্যাফটকে স্পষ্টত, রঙিন ক্রাফ্টে
নিকবোল্ড


আমার মনে হয় স্থান reset=`tput sgr0`থাকা উচিত reset=`tput sgr 0`
বানরবাদীরা

831

কিছু ভেরিয়েবল আপনি ব্যবহার করতে পারেন:

# Reset
Color_Off='\033[0m'       # Text Reset

# Regular Colors
Black='\033[0;30m'        # Black
Red='\033[0;31m'          # Red
Green='\033[0;32m'        # Green
Yellow='\033[0;33m'       # Yellow
Blue='\033[0;34m'         # Blue
Purple='\033[0;35m'       # Purple
Cyan='\033[0;36m'         # Cyan
White='\033[0;37m'        # White

# Bold
BBlack='\033[1;30m'       # Black
BRed='\033[1;31m'         # Red
BGreen='\033[1;32m'       # Green
BYellow='\033[1;33m'      # Yellow
BBlue='\033[1;34m'        # Blue
BPurple='\033[1;35m'      # Purple
BCyan='\033[1;36m'        # Cyan
BWhite='\033[1;37m'       # White

# Underline
UBlack='\033[4;30m'       # Black
URed='\033[4;31m'         # Red
UGreen='\033[4;32m'       # Green
UYellow='\033[4;33m'      # Yellow
UBlue='\033[4;34m'        # Blue
UPurple='\033[4;35m'      # Purple
UCyan='\033[4;36m'        # Cyan
UWhite='\033[4;37m'       # White

# Background
On_Black='\033[40m'       # Black
On_Red='\033[41m'         # Red
On_Green='\033[42m'       # Green
On_Yellow='\033[43m'      # Yellow
On_Blue='\033[44m'        # Blue
On_Purple='\033[45m'      # Purple
On_Cyan='\033[46m'        # Cyan
On_White='\033[47m'       # White

# High Intensity
IBlack='\033[0;90m'       # Black
IRed='\033[0;91m'         # Red
IGreen='\033[0;92m'       # Green
IYellow='\033[0;93m'      # Yellow
IBlue='\033[0;94m'        # Blue
IPurple='\033[0;95m'      # Purple
ICyan='\033[0;96m'        # Cyan
IWhite='\033[0;97m'       # White

# Bold High Intensity
BIBlack='\033[1;90m'      # Black
BIRed='\033[1;91m'        # Red
BIGreen='\033[1;92m'      # Green
BIYellow='\033[1;93m'     # Yellow
BIBlue='\033[1;94m'       # Blue
BIPurple='\033[1;95m'     # Purple
BICyan='\033[1;96m'       # Cyan
BIWhite='\033[1;97m'      # White

# High Intensity backgrounds
On_IBlack='\033[0;100m'   # Black
On_IRed='\033[0;101m'     # Red
On_IGreen='\033[0;102m'   # Green
On_IYellow='\033[0;103m'  # Yellow
On_IBlue='\033[0;104m'    # Blue
On_IPurple='\033[0;105m'  # Purple
On_ICyan='\033[0;106m'    # Cyan
On_IWhite='\033[0;107m'   # White

যথাক্রমে বাশ , হেক্স এবং অষ্টালে পালানোর চরিত্র :

|       | bash  | hex    | octal   | NOTE                         |
|-------+-------+--------+---------+------------------------------|
| start | \e    | \x1b   | \033    |                              |
| start | \E    | \x1B   | -       | x cannot be capital          |
| end   | \e[0m | \x1m0m | \033[0m |                              |
| end   | \e[m  | \x1b[m | \033[m  | 0 is appended if you omit it |
|       |       |        |         |                              |

সংক্ষিপ্ত উদাহরণ:

| color       | bash         | hex            | octal          | NOTE                                  |
|-------------+--------------+----------------+----------------+---------------------------------------|
| start green | \e[32m<text> | \x1b[32m<text> | \033[32m<text> | m is NOT optional                     |
| reset       | <text>\e[0m  | <text>\1xb[0m  | <text>\033[om  | o is optional (do it as best practice |
|             |              |                |                |                                       |

বাশ ব্যতিক্রম:

আপনি যদি এই বিশেষ কোডগুলি আপনার বিশেষ ব্যাশ ভেরিয়েবলগুলিতে ব্যবহার করতে যাচ্ছেন

  • PS0
  • PS1
  • PS2 (= এটি অনুরোধের জন্য)
  • PS4

আপনার অতিরিক্ত পালানোর অক্ষর যুক্ত করা উচিত যাতে এটি তাদের সঠিক ব্যাখ্যা করতে পারেন। এটি অতিরিক্ত পালানোর অক্ষরগুলি ছাড়া এটি কাজ করে তবে আপনি যখন Ctrl + rআপনার ইতিহাসে অনুসন্ধানের জন্য ব্যবহার করবেন তখন সমস্যার মুখোমুখি হবেন ।

বাশ জন্য ব্যতিক্রম নিয়ম

আপনার যে \[কোনও এএনএসআই কোড শুরু করার আগে যুক্ত করা উচিত এবং \]শেষের কোনও পরে যুক্ত করা উচিত ।
উদাহরণ:
নিয়মিত ব্যবহারে: \033[32mThis is in green\033[0m
PS0 / 1/2/4 এর জন্য: \[\033[32m\]This is in green\[\033[m\]

\[একটি ক্রম শুরুর জন্য মুদ্রণযোগ্য নয় এমন অক্ষর
\]একটি অনুক্রম শেষে জন্য মুদ্রণযোগ্য নয় এমন অক্ষর

টিপ: এটি মুখস্ত করার জন্য আপনি প্রথমে যুক্ত করতে পারেন \[\]এবং তারপরে তাদের এএনএসআই কোড রাখতে পারেন:
- \[start-ANSI-code\]
-\[end-ANSI-code\]

রঙের ক্রমের ধরণ:

  1. 3/4 বিট
  2. 8 বিট
  3. 24 বিট

এই রঙগুলিতে ডুব দেওয়ার আগে আপনার এই কোডগুলি সহ 4 টি মোড সম্পর্কে জেনে রাখা উচিত:

1. রঙ-মোড

এটি রঙের নয় টেক্সটের শৈলীতে পরিবর্তন করে। উদাহরণস্বরূপ রঙটি উজ্জ্বল বা গাer় করুন।

  • 0 রিসেট
  • 1; স্বাভাবিকের চেয়ে হালকা
  • 2; স্বাভাবিকের চেয়ে গাer়

এই মোডটি ব্যাপকভাবে সমর্থিত নয়। এটি জিনোম-টার্মিনালে সম্পূর্ণ সমর্থন support

২. পাঠ্য মোড

এই মোডটি পাঠ্য নয় রঙের স্টাইলটি সংশোধন করার জন্য।

  • 3; বাঁকা ছাঁদে গঠিত
  • 4; নিম্নরেখা
  • 5; জ্বলজ্বলে (ধীর)
  • 6; জ্বলজ্বলে (দ্রুত)
  • 7; বিপরীত
  • 8; আড়াল
  • 9; বাতিল করা

এবং প্রায় সমর্থিত।
উদাহরণস্বরূপ, কে-ডি-কনসোল সমর্থন করে 5;তবে জিনোম-টার্মিনাল দেয় না এবং জিনোম সমর্থন করে তবে কে-ডি-কে সমর্থন 8;করে না।

৩.ফরগ্রাউন্ড মোড

এই মোডটি অগ্রভাগটি রঙিন করার জন্য।

৪. পটভূমি মোড

এই মোডটি ব্যাকগ্রাউন্ডটি রঙ করার জন্য।

নীচের সারণিতে এএনএসআই-বর্ণের 3/4 বিট সংস্করণের সংক্ষিপ্তসার দেখানো হয়েছে

|------------+----------+---------+-------+------------------+------------------------------+--------------------------------------|
| color-mode | octal    | hex     | bash  | description      | example (= in octal)         | NOTE                                 |
|------------+----------+---------+-------+------------------+------------------------------+--------------------------------------|
|          0 | \033[0m  | \x1b[0m | \e[0m | reset any affect | echo -e "\033[0m"            | 0m equals to m                       |
|          1 | \033[1m  |         |       | light (= bright) | echo -e "\033[1m####\033[m"  | -                                    |
|          2 | \033[2m  |         |       | dark (= fade)    | echo -e "\033[2m####\033[m"  | -                                    |
|------------+----------+---------+-------+------------------+------------------------------+--------------------------------------|
|  text-mode | ~        |         |       | ~                | ~                            | ~                                    |
|------------+----------+---------+-------+------------------+------------------------------+--------------------------------------|
|          3 | \033[3m  |         |       | italic           | echo -e "\033[3m####\033[m"  |                                      |
|          4 | \033[4m  |         |       | underline        | echo -e "\033[4m####\033[m"  |                                      |
|          5 | \033[5m  |         |       | blink (slow)     | echo -e "\033[3m####\033[m"  |                                      |
|          6 | \033[6m  |         |       | blink (fast)     | ?                            | not wildly support                   |
|          7 | \003[7m  |         |       | reverse          | echo -e "\033[7m####\033[m"  | it affects the background/foreground |
|          8 | \033[8m  |         |       | hide             | echo -e "\033[8m####\033[m"  | it affects the background/foreground |
|          9 | \033[9m  |         |       | cross            | echo -e "\033[9m####\033[m"  |                                      |
|------------+----------+---------+-------+------------------+------------------------------+--------------------------------------|
| foreground | ~        |         |       | ~                | ~                            | ~                                    |
|------------+----------+---------+-------+------------------+------------------------------+--------------------------------------|
|         30 | \033[30m |         |       | black            | echo -e "\033[30m####\033[m" |                                      |
|         31 | \033[31m |         |       | red              | echo -e "\033[31m####\033[m" |                                      |
|         32 | \033[32m |         |       | green            | echo -e "\033[32m####\033[m" |                                      |
|         33 | \033[33m |         |       | yellow           | echo -e "\033[33m####\033[m" |                                      |
|         34 | \033[34m |         |       | blue             | echo -e "\033[34m####\033[m" |                                      |
|         35 | \033[35m |         |       | purple           | echo -e "\033[35m####\033[m" | real name: magenta = reddish-purple  |
|         36 | \033[36m |         |       | cyan             | echo -e "\033[36m####\033[m" |                                      |
|         37 | \033[37m |         |       | white            | echo -e "\033[37m####\033[m" |                                      |
|------------+----------+---------+-------+------------------+------------------------------+--------------------------------------|
|         38 | 8/24     |                    This is for special use of 8-bit or 24-bit                                            |
|------------+----------+---------+-------+------------------+------------------------------+--------------------------------------|
| background | ~        |         |       | ~                | ~                            | ~                                    |
|------------+----------+---------+-------+------------------+------------------------------+--------------------------------------|
|         40 | \033[40m |         |       | black            | echo -e "\033[40m####\033[m" |                                      |
|         41 | \033[41m |         |       | red              | echo -e "\033[41m####\033[m" |                                      |
|         42 | \033[42m |         |       | green            | echo -e "\033[42m####\033[m" |                                      |
|         43 | \033[43m |         |       | yellow           | echo -e "\033[43m####\033[m" |                                      |
|         44 | \033[44m |         |       | blue             | echo -e "\033[44m####\033[m" |                                      |
|         45 | \033[45m |         |       | purple           | echo -e "\033[45m####\033[m" | real name: magenta = reddish-purple  |
|         46 | \033[46m |         |       | cyan             | echo -e "\033[46m####\033[m" |                                      |
|         47 | \033[47m |         |       | white            | echo -e "\033[47m####\033[m" |                                      |
|------------+----------+---------+-------+------------------+------------------------------+--------------------------------------|
|         48 | 8/24     |                    This is for special use of 8-bit or 24-bit                                            |                                                                                       |
|------------+----------+---------+-------+------------------+------------------------------+--------------------------------------|

নীচের সারণিতে এএনএসআই-রঙের 8 বিট সংস্করণের সংক্ষিপ্তসার দেখানো হয়েছে

|------------+-----------+-----------+---------+------------------+------------------------------------+-------------------------|
| foreground | octal     | hex       | bash    | description      | example                            | NOTE                    |
|------------+-----------+-----------+---------+------------------+------------------------------------+-------------------------|
|        0-7 | \033[38;5 | \x1b[38;5 | \e[38;5 | standard. normal | echo -e '\033[38;5;1m####\033[m'   |                         |
|       8-15 |           |           |         | standard. light  | echo -e '\033[38;5;9m####\033[m'   |                         |
|     16-231 |           |           |         | more resolution  | echo -e '\033[38;5;45m####\033[m'  | has no specific pattern |
|    232-255 |           |           |         |                  | echo -e '\033[38;5;242m####\033[m' | from black to white     |
|------------+-----------+-----------+---------+------------------+------------------------------------+-------------------------|
| foreground | octal     | hex       | bash    | description      | example                            | NOTE                    |
|------------+-----------+-----------+---------+------------------+------------------------------------+-------------------------|
|        0-7 |           |           |         | standard. normal | echo -e '\033[48;5;1m####\033[m'   |                         |
|       8-15 |           |           |         | standard. light  | echo -e '\033[48;5;9m####\033[m'   |                         |
|     16-231 |           |           |         | more resolution  | echo -e '\033[48;5;45m####\033[m'  |                         |
|    232-255 |           |           |         |                  | echo -e '\033[48;5;242m####\033[m' | from black to white     |
|------------+-----------+-----------+---------+------------------+------------------------------------+-------------------------|

8-বিট দ্রুত পরীক্ষা:
for code in {0..255}; do echo -e "\e[38;05;${code}m $code: Test"; done

নীচে সারণি এএনএসআই-রঙের 24 বিট সংস্করণের সংক্ষিপ্তসার দেখায়

|------------+-----------+-----------+---------+-------------+------------------------------------------+-----------------|
| foreground | octal     | hex       | bash    | description | example                                  | NOTE            |
|------------+-----------+-----------+---------+-------------+------------------------------------------+-----------------|
|      0-255 | \033[38;2 | \x1b[38;2 | \e[38;2 | R = red     | echo -e '\033[38;2;255;0;02m####\033[m'  | R=255, G=0, B=0 |
|      0-255 | \033[38;2 | \x1b[38;2 | \e[38;2 | G = green   | echo -e '\033[38;2;;0;255;02m####\033[m' | R=0, G=255, B=0 |
|      0-255 | \033[38;2 | \x1b[38;2 | \e[38;2 | B = blue    | echo -e '\033[38;2;0;0;2552m####\033[m'  | R=0, G=0, B=255 |
|------------+-----------+-----------+---------+-------------+------------------------------------------+-----------------|
| background | octal     | hex       | bash    | description | example                                  | NOTE            |
|------------+-----------+-----------+---------+-------------+------------------------------------------+-----------------|
|      0-255 | \033[48;2 | \x1b[48;2 | \e[48;2 | R = red     | echo -e '\033[48;2;255;0;02m####\033[m'  | R=255, G=0, B=0 |
|      0-255 | \033[48;2 | \x1b[48;2 | \e[48;2 | G = green   | echo -e '\033[48;2;;0;255;02m####\033[m' | R=0, G=255, B=0 |
|      0-255 | \033[48;2 | \x1b[48;2 | \e[48;2 | B = blue    | echo -e '\033[48;2;0;0;2552m####\033[m'  | R=0, G=0, B=255 |
|------------+-----------+-----------+---------+-------------+------------------------------------------+-----------------|

কিছু স্ক্রিন-শট

অগ্রভাগ 8-বিট সারাংশ এ .gif

foreground.gif

ব্যাকগ্রাউন্ডে 8-বিট সংক্ষিপ্তসার .gif

background.gif

তাদের মানগুলির সাথে রঙের সংক্ষিপ্তসার

এখানে চিত্র বর্ণনা লিখুন এখানে চিত্র বর্ণনা লিখুন এখানে চিত্র বর্ণনা লিখুন এখানে চিত্র বর্ণনা লিখুন

blinking কেডিএ-টার্মিনালে

ডি-ই-জ্বলজ্বলে

একটি সাধারণ Cকোড যা আপনাকে আরও দেখায়

cecho_screenshot

এই রঙগুলি মোকাবেলায় আমি আরও উন্নত একটি সরঞ্জাম তৈরি করেছি:

bline


রঙ মোড শট

বিবর্ণ-স্বাভাবিক-উজ্জ্বল

পাঠ্য মোড শট

শুধুমাত্র টেক্সট-মোড

সংমিশ্রণ ঠিক আছে

মেশা

আরও শট


উন্নত ব্যবহারকারী এবং প্রোগ্রামারদের জন্য টিপস এবং কৌশল:

আমরা কি এই কোডগুলিকে একটি প্রোগ্রামিং ভাষায় ব্যবহার করতে পারি?

হ্যা, তুমি পারো. আমি অভিজ্ঞ, , , ,

তারা কি কোনও প্রোগ্রামের গতি কমিয়ে দিচ্ছে?

আমার মনে হয়, না।

আমরা কি উইন্ডোজ এ ব্যবহার করতে পারি?

3/4-বিট হ্যাঁ, আপনি যদি উইন -7-তে কিছু স্ক্রিন-শট দিয়ে কোডটি সংকলন করেনgcc

কোড দৈর্ঘ্য গণনা কিভাবে?

\033[ = 2, অন্যান্য অংশ 1

আমরা এই কোডগুলি কোথায় ব্যবহার করতে পারি?

কোথাও একটি হয়েছে ttyব্যাখ্যাকারী
xterm, gnome-terminal, kde-terminal, mysql-client-CLIইত্যাদি।
উদাহরণস্বরূপ আপনি যদি নিজের আউটপুটকে মাইএসকিএল দিয়ে রঙিন করতে চান তবে আপনি ব্যবহার করতে পারেনPerl

#!/usr/bin/perl -n
print "\033[1m\033[31m$1\033[36m$2\033[32m$3\033[33m$4\033[m" while /([|+-]+)|([0-9]+)|([a-zA-Z_]+)|([^\w])/g;

এই কোডটি কোনও ফাইলের নামে সংরক্ষণ করুন: pcc(= পার্ল কালারাইজ ক্যারেক্টার) এবং তারপরে ফাইলটি একটি বৈধ করে রাখুন এবং PATHআপনার পছন্দ মতো যেখানেই এটি ব্যবহার করুন।

ls | pcc
df | pcc

ভিতরে mysqlপ্রথমে এটি নিবন্ধন pagerকরুন এবং তারপরে চেষ্টা করুন:

[user2:db2] pager pcc
PAGER set to 'pcc'
[user2:db2] select * from table-name;

পিসিসি

এটি ইউনিকোড পরিচালনা করে না

এই কোডগুলি কি রঙিন করে?

না, তারা অনেক মজার কাজ করতে পারে। চেষ্টা করুন:

echo -e '\033[2K'  # clear the screen and do not move the position

বা:

echo -e '\033[2J\033[u' # clear the screen and reset the position

এমন অনেক শুরুর সূচনা রয়েছে যা স্ক্রিনটি সাফ করতে চায় system( "clear" )যাতে আপনি system(3)কলটির পরিবর্তে এটি ব্যবহার করতে পারেন

এগুলি কি ইউনিকোডে পাওয়া যায়?

হ্যাঁ. \u001b

এই রঙগুলির কোন সংস্করণ পছন্দনীয়?

এটি ব্যবহার করা সহজ 3/4-bit, তবে এটি ব্যবহার করা অনেক নির্ভুল এবং সুন্দর 24-bit
আপনার সাথে অভিজ্ঞতা না থাকলে: তাই এখানে একটি দ্রুত টিউটোরিয়াল
24 বিট মাধ্যম: 00000000এবং 00000000এবং 00000000। প্রতিটি 8-বিট একটি নির্দিষ্ট রঙের জন্য।
1..8জন্য এবং 9..16জন্য এবং 17..24জন্য
তাই #FF0000মানে এবং এখানে এটি: 255;0;0
ইন #00FF00যার অর্থ এখানে: এটি 0;255;0
কি বোধগম্য? এই তিনটি 8-বিট মানগুলির সাথে আপনি কী রঙটি যুক্ত করতে চান।


রেফারেন্স:
উইকিপিডিয়া
এএনএসআই এস্কেপ সিকোয়েন্সস
tldp.org
tldp.org
Misc.flogisoft.com
কিছু ব্লগ / ওয়েব-পৃষ্ঠা যা আমার মনে নেই


69
এই উত্তর শুনে আর কেউ কি সত্যিই অবাক হয় ??
বেনজ

14
এটি অবশ্যই খ্যাতি উত্তরের হল, আপনাকে ধন্যবাদ।
ForeverZer0

2
@ নীলগুইলিন্ডবার্গ কোন অক্টাল লিটারালস নয় এই ত্রুটিটি নোড.জেসের অংশ যা নিজেই তালিকাভুক্ত নয়। আপনি এটি অপসারণ করতে ব্যবহার করতে পারেন x1B[
শাকিবা মশিরি

5
আমি এই উত্তরটি upvote করতে বেশ পিছনে স্ক্রোল!
আরএনএ

1
মনে হচ্ছে, @ শাকিবা মোশিরি এই বিষয়টির উপর একটি থিসিস লিখেছেন এক্স ডি জোকসকে বাদ দিয়ে, এরকম বিস্তারিত উত্তরের জন্য চিয়ার্স!
এসএইচ '

188

ক্ষমতা এবং একটি পরামিতি tputসঙ্গে ব্যবহার করুন ।setaf1

echo "$(tput setaf 1)Hello, world$(tput sgr0)"

8
এটি সেরা বিকল্প হওয়া উচিত। টিপুট কী করে তা হ'ল এটি টার্মিনাল তথ্যটি পড়বে এবং আপনার জন্য সঠিকভাবে পালানো এএনএসআই কোড রেন্ডার করবে। কোড লাইকটি টার্মিনালের কিছুতে পঠন লাইব্রেরিটি \033[31mভেঙে দেবে ।
তিয়ান চেন

43
একটি সাধারণ লুপের সাহায্যে রঙগুলি অন্বেষণ করুন ( iআরও for (( i = 0; i < 17; i++ )); do echo "$(tput setaf $i)This is ($i) $(tput sgr0)"; done
শেডগুলির

2
এখানে টিপুট কোডগুলির একটি হাওটো রয়েছে: tldp.org/HOWTO/Bash-Prompt-HOWTO/x405.html
maxywb

tput: command not found(
আলপাইনতে

127
echo -e "\033[31m Hello World"

[31mনিয়ন্ত্রণ টেক্সট রঙ:

  • 30- অগ্রভূমির রঙ 37নির্ধারণ করে
  • 40- পটভূমির রঙ 47নির্ধারণ করে

রঙ কোডগুলির আরও একটি সম্পূর্ণ তালিকা এখানে পাওয়া যাবে

\033[0mস্ট্রিংয়ের শেষে পাঠ্যের রঙটি পুনরায় সেট করা ভাল অনুশীলন ।


2
প্রতিধ্বনি -e "\ 033 [31m হ্যালো ওয়ার্ল্ড", [31m রঙ
neocanable

36

আমি সমস্ত সমাধানগুলিতে ভাল ক্যাচগুলিকে একত্রিত করেছি এবং এর সাথে শেষ করেছি:

cecho(){
    RED="\033[0;31m"
    GREEN="\033[0;32m"
    YELLOW="\033[1;33m"
    # ... ADD MORE COLORS
    NC="\033[0m" # No Color

    printf "${!1}${2} ${NC}\n"
}

এবং আপনি কেবল এটি হিসাবে কল করতে পারেন:

cecho "RED" "Helloworld"

1
খুব ব্যবহারিক, এটি আমার স্ক্রিপ্টে কাজ করার জন্য আমাকে কেবল গ্রিন, ইয়েলও, এনসির জন্য ডাবল উদ্ধৃতি সহ একক উদ্ধৃতিগুলি প্রতিস্থাপন করতে হয়েছিল।
ionescu77

1
দুর্দান্ত সমাধান !!
ডেভিড কারিউকি

31

এটি রঙিন সুইচ \033[ইতিহাস দেখুন ।

রঙের কোডগুলি1;32 (হালকা সবুজ), 0;34(নীল), 1;34(হালকা নীল) ইত্যাদি are

আমরা একটি রং সুইচ সঙ্গে রঙ ক্রম বিনষ্ট \033[এবং 0m, কোন -color কোড। ঠিক যেমন একটি মার্কআপ ভাষায় ট্যাবগুলি খোলার এবং বন্ধ করার মতো।

  SWITCH="\033["
  NORMAL="${SWITCH}0m"
  YELLOW="${SWITCH}1;33m"
  echo "${YELLOW}hello, yellow${NORMAL}"

সাধারণ রঙ echoফাংশন সমাধান:

cecho() {
  local code="\033["
  case "$1" in
    black  | bk) color="${code}0;30m";;
    red    |  r) color="${code}1;31m";;
    green  |  g) color="${code}1;32m";;
    yellow |  y) color="${code}1;33m";;
    blue   |  b) color="${code}1;34m";;
    purple |  p) color="${code}1;35m";;
    cyan   |  c) color="${code}1;36m";;
    gray   | gr) color="${code}0;37m";;
    *) local text="$1"
  esac
  [ -z "$text" ] && local text="$color$2${code}0m"
  echo "$text"
}

cecho "Normal"
cecho y "Yellow!"

1
আমি এইভাবে শেষ textপরিবর্তনশীলটি পরিবর্তন করতাম text="$color${@: 2}${code}0m"রঙের প্যারামিটার বাদে পুরো লাইনটি রঙিন হয়ে যায়।
শায়রন টলেডো

@ তোমাজাহলিন কেবল প্রতিবেদনে যোগ করেছেন-যেমন উপরে উল্লিখিত বেশ কয়েকবার বলা হয়েছে
আর্টেম মেদভেদেভ

28

শুধুমাত্র একটির জন্য রঙ পরিবর্তন করার একটি ঝরঝরে উপায় echoহ'ল এই জাতীয় ক্রিয়াটি সংজ্ঞায়িত করা:

function coloredEcho(){
    local exp=$1;
    local color=$2;
    if ! [[ $color =~ '^[0-9]$' ]] ; then
       case $(echo $color | tr '[:upper:]' '[:lower:]') in
        black) color=0 ;;
        red) color=1 ;;
        green) color=2 ;;
        yellow) color=3 ;;
        blue) color=4 ;;
        magenta) color=5 ;;
        cyan) color=6 ;;
        white|*) color=7 ;; # white or invalid color
       esac
    fi
    tput setaf $color;
    echo $exp;
    tput sgr0;
}

ব্যবহার:

coloredEcho "This text is green" green

অথবা আপনি ড্রয়ের উত্তরে উল্লিখিত রঙিন কোডগুলি সরাসরি ব্যবহার করতে পারেন :

coloredEcho "This text is green" 2

যদি আপনি -nপ্রতিধ্বনিতে যোগ করেন তবে আপনি এটিকে ইনলাইন রঙ হিসাবে ব্যবহার করতে পারেনecho "Red `coloredEcho "fox" red` jumps over the lazy dog"
sobi3ch

23

tputরঙ কোড গণনা করতে ব্যবহার করুন । এএনএসআই এস্কেপ কোড (যেমন \E[31;1mলাল হিসাবে) ব্যবহার করা এড়িয়ে চলুন কারণ এটি কম পোর্টেবল। উদাহরণস্বরূপ, ওএস এক্সে ব্যাশ এটি সমর্থন করে না।

BLACK=`tput setaf 0`
RED=`tput setaf 1`
GREEN=`tput setaf 2`
YELLOW=`tput setaf 3`
BLUE=`tput setaf 4`
MAGENTA=`tput setaf 5`
CYAN=`tput setaf 6`
WHITE=`tput setaf 7`

BOLD=`tput bold`
RESET=`tput sgr0`

echo -e "hello ${RED}some red text${RESET} world"

18

এই প্রশ্নের উত্তর বারবার দেওয়া হয়েছে :-) তবে কেন হবে না।

tputম্যানুয়ালি ASCII কোডগুলি ইনজেক্ট করার চেয়ে আধুনিক পরিবেশে প্রথমে ব্যবহার করা আরও পোর্টেবলecho -E

এখানে একটি দ্রুত বাশ ফাংশন রয়েছে:

 say() {
     echo "$@" | sed \
             -e "s/\(\(@\(red\|green\|yellow\|blue\|magenta\|cyan\|white\|reset\|b\|u\)\)\+\)[[]\{2\}\(.*\)[]]\{2\}/\1\4@reset/g" \
             -e "s/@red/$(tput setaf 1)/g" \
             -e "s/@green/$(tput setaf 2)/g" \
             -e "s/@yellow/$(tput setaf 3)/g" \
             -e "s/@blue/$(tput setaf 4)/g" \
             -e "s/@magenta/$(tput setaf 5)/g" \
             -e "s/@cyan/$(tput setaf 6)/g" \
             -e "s/@white/$(tput setaf 7)/g" \
             -e "s/@reset/$(tput sgr0)/g" \
             -e "s/@b/$(tput bold)/g" \
             -e "s/@u/$(tput sgr 0 1)/g"
  }

এখন আপনি ব্যবহার করতে পারেন:

 say @b@green[[Success]] 

পেতে:

সাহসী-সবুজ সাফল্য

এর বহনযোগ্যতার উপর নোট tput

tput(1)1986 সালের সেপ্টেম্বরে প্রথমবারের উত্স কোডটি আপলোড করা হয়েছিল

tput(1) ১৯৯০-এর দশকে এক্স / ওপেন শাপের শব্দার্থবিজ্ঞানে উপলভ্য হয়েছে (১৯৯ standard এর মান নীচে বর্ণিত শব্দার্থবিজ্ঞান রয়েছে)।

সুতরাং, এটি ( বেশ ) সর্বব্যাপী।


এটি বেশ দুর্দান্ত! এটি জানতেন না। এর প্রাপ্যতা সম্পর্কে কিছু বলতে পারেন tput? এটি কি এমন বেশিরভাগ সার্ভারগুলিতে উপলব্ধ যেখানে এটি ইনস্টল করার প্রশাসনের অধিকার নেই? এই কৌশলটি প্রথম আবিষ্কার হয়েছিল যেখানে আপনার কোনও লিঙ্ক আছে?
রেডসান্দ্রো

3
tput হ'ল মানদণ্ডের অনুগত উপায় এটি করার জন্য, যেখানে এটি টার্মিনাল ক্ষমতাগুলি জেনে আপনার থেকে সম্পূর্ণ স্বতন্ত্র। যদি টার্মিনাল কোনও প্রদত্ত সামর্থ্য সমর্থন করে না তবে এটি স্ক্রুয়ী এস্কেপ কোডগুলি না চালিয়ে যা করতে পারে তা করুণভাবে ডাউনগ্রেড করবে।
আহমেদ মাসুদ

1
আমি এই পদ্ধতিটি ব্যবহার বন্ধ করে দিয়েছি কারণ এটি ব্যাশ লাইনে কার্সার অবস্থানের সাথে মিশে যায়। এটি লাইন শেষ হওয়ার আগে এলোমেলোভাবে মোড়ানো হবে এবং বাড়ি বা তীর কীগুলি ব্যবহার করার সময় লাইনের শুরুতে সমস্ত পথ ফিরে পাবে না। আনাড়ি ম্যানুয়াল এস্কেপ কোডগুলিতে ফিরে যাওয়া এই সমস্যার সমাধান করে।
রেডসান্দ্রো

2
@ রিসানড্রো - আপনি এটিকে ফাঁকা জায়গাগুলি $PS1ছাড়াই ব্যবহার করছেন বলে \[...\]? টিপুট স্ট্রিং সহ ব্যাশ পিএস 1 চিহ্নিতকারী ব্যবহার করা চালিয়ে যান।
টবি স্পিড

নোট করুন যে সেড ইউটিলিটির বিভিন্নতার কারণে এই ফাংশনটি ম্যাকওএসএক্স-এ সম্পূর্ণরূপে কাজ করে না: unix.stackex بدل.com
জেফ

14

এই উত্তরের জন্য @ কে-ফাইভকে ধন্যবাদ

declare -A colors
#curl www.bunlongheng.com/code/colors.png

# Reset
colors[Color_Off]='\033[0m'       # Text Reset

# Regular Colors
colors[Black]='\033[0;30m'        # Black
colors[Red]='\033[0;31m'          # Red
colors[Green]='\033[0;32m'        # Green
colors[Yellow]='\033[0;33m'       # Yellow
colors[Blue]='\033[0;34m'         # Blue
colors[Purple]='\033[0;35m'       # Purple
colors[Cyan]='\033[0;36m'         # Cyan
colors[White]='\033[0;37m'        # White

# Bold
colors[BBlack]='\033[1;30m'       # Black
colors[BRed]='\033[1;31m'         # Red
colors[BGreen]='\033[1;32m'       # Green
colors[BYellow]='\033[1;33m'      # Yellow
colors[BBlue]='\033[1;34m'        # Blue
colors[BPurple]='\033[1;35m'      # Purple
colors[BCyan]='\033[1;36m'        # Cyan
colors[BWhite]='\033[1;37m'       # White

# Underline
colors[UBlack]='\033[4;30m'       # Black
colors[URed]='\033[4;31m'         # Red
colors[UGreen]='\033[4;32m'       # Green
colors[UYellow]='\033[4;33m'      # Yellow
colors[UBlue]='\033[4;34m'        # Blue
colors[UPurple]='\033[4;35m'      # Purple
colors[UCyan]='\033[4;36m'        # Cyan
colors[UWhite]='\033[4;37m'       # White

# Background
colors[On_Black]='\033[40m'       # Black
colors[On_Red]='\033[41m'         # Red
colors[On_Green]='\033[42m'       # Green
colors[On_Yellow]='\033[43m'      # Yellow
colors[On_Blue]='\033[44m'        # Blue
colors[On_Purple]='\033[45m'      # Purple
colors[On_Cyan]='\033[46m'        # Cyan
colors[On_White]='\033[47m'       # White

# High Intensity
colors[IBlack]='\033[0;90m'       # Black
colors[IRed]='\033[0;91m'         # Red
colors[IGreen]='\033[0;92m'       # Green
colors[IYellow]='\033[0;93m'      # Yellow
colors[IBlue]='\033[0;94m'        # Blue
colors[IPurple]='\033[0;95m'      # Purple
colors[ICyan]='\033[0;96m'        # Cyan
colors[IWhite]='\033[0;97m'       # White

# Bold High Intensity
colors[BIBlack]='\033[1;90m'      # Black
colors[BIRed]='\033[1;91m'        # Red
colors[BIGreen]='\033[1;92m'      # Green
colors[BIYellow]='\033[1;93m'     # Yellow
colors[BIBlue]='\033[1;94m'       # Blue
colors[BIPurple]='\033[1;95m'     # Purple
colors[BICyan]='\033[1;96m'       # Cyan
colors[BIWhite]='\033[1;97m'      # White

# High Intensity backgrounds
colors[On_IBlack]='\033[0;100m'   # Black
colors[On_IRed]='\033[0;101m'     # Red
colors[On_IGreen]='\033[0;102m'   # Green
colors[On_IYellow]='\033[0;103m'  # Yellow
colors[On_IBlue]='\033[0;104m'    # Blue
colors[On_IPurple]='\033[0;105m'  # Purple
colors[On_ICyan]='\033[0;106m'    # Cyan
colors[On_IWhite]='\033[0;107m'   # White


color=${colors[$input_color]}
white=${colors[White]}
# echo $white



for i in "${!colors[@]}"
do
  echo -e "$i = ${colors[$i]}I love you$white"
done

ফলাফল

এখানে চিত্র বর্ণনা লিখুন

আশা করি এই চিত্রটি আপনাকে আপনার বাশার জন্য রঙ চয়ন করতে সহায়তা করবে: ডি


14

আপনি যদি ব্যবহার করছেন zshবাbash

black() {
    echo -e "\e[30m${1}\e[0m"
}

red() {
    echo -e "\e[31m${1}\e[0m"
}

green() {
    echo -e "\e[32m${1}\e[0m"
}

yellow() {
    echo -e "\e[33m${1}\e[0m"
}

blue() {
    echo -e "\e[34m${1}\e[0m"
}

magenta() {
    echo -e "\e[35m${1}\e[0m"
}

cyan() {
    echo -e "\e[36m${1}\e[0m"
}

gray() {
    echo -e "\e[90m${1}\e[0m"
}

black 'BLACK'
red 'RED'
green 'GREEN'
yellow 'YELLOW'
blue 'BLUE'
magenta 'MAGENTA'
cyan 'CYAN'
gray 'GRAY'

অনলাইন চেষ্টা করুন


14

আমরা টেক্সট এবং ব্যাকগ্রাউন্ড উভয়ের জন্য 24 বিট আরজিবি সত্য রঙ ব্যবহার করতে পারি !

 ESC[38;2;⟨r⟩;⟨g⟩;⟨bm  /*Foreground color*/
 ESC[48;2;⟨r⟩;⟨g⟩;⟨bm  /*Background color*/

লাল পাঠ্য এবং সমাপনী ট্যাগ উদাহরণ:

 echo -e "\e[38;2;255;0;0mHello world\e[0m"

জেনারেটর:

24-বিট: 16 থেকে 24 বিটের রঙের সাথে "সত্য রঙ" গ্রাফিক কার্ডগুলি সাধারণ হয়ে উঠেছে, এক্সটার্ম, কে-ডি-কে-এর কনসোল পাশাপাশি সমস্ত লিবিভেট ভিত্তিক টার্মিনাল (জিনোম টার্মিনাল সহ) 24-বিট ফোরগ্রাউন্ড এবং ব্যাকগ্রাউন্ড কালার সেটিং https: / /en.wikipedia.org/wiki/ANSI_escape_code#24-bit

আমার স্ক্রিপ্টগুলিতে ব্যবহার করা কি নিরাপদ?

হ্যাঁ! 8 এবং 16 বিট টার্মিনালগুলি কেবল উপলব্ধ প্যালেটের পরিসরে একটি রঙ ফ্যালব্যাক হিসাবে প্রদর্শন করবে, সর্বোত্তম বৈসাদৃশ্য রেখে, কোনও ভাঙ্গন নেই!


এছাড়াও, এএনএসআই কোড 7 এর বিপরীত ভিডিওর কার্যকারিতা কেউ লক্ষ্য করেনি ।

অগ্রভাগ এবং পটভূমির রঙ অদলবদল করে এটি কোনও টার্মিনাল স্কিমের রঙ, কালো বা সাদা ব্যাকগ্রাউন্ড বা অন্যান্য ফ্যানসি প্যালেটগুলিতে পঠনযোগ্য থাকে।

উদাহরণস্বরূপ, লাল পটভূমির জন্য যা সর্বত্র কাজ করে:

echo -e "\033[31;7mHello world\e[0m";

টার্মিনাল অন্তর্নির্মিত স্কিমগুলি পরিবর্তন করার সময় এটি দেখতে কেমন লাগে:

এখানে চিত্র বর্ণনা লিখুন

এটি জিআইএফ এর জন্য ব্যবহৃত লুপ স্ক্রিপ্ট।

for i in {30..49};do echo -e "\033[$i;7mReversed color code $i\e[0m Hello world!";done

Https://en.wikedia.org/wiki/ANSI_escape_code#SGR_( নির্বাচন_গ্রাফিক_রেন্ডেশন) _ paraters দেখুন


11

এই কোডগুলি আমার উবুন্টু বাক্সে কাজ করে:

এখানে চিত্র বর্ণনা লিখুন

echo -e "\x1B[31m foobar \x1B[0m"
echo -e "\x1B[32m foobar \x1B[0m"
echo -e "\x1B[96m foobar \x1B[0m"
echo -e "\x1B[01;96m foobar \x1B[0m"
echo -e "\x1B[01;95m foobar \x1B[0m"
echo -e "\x1B[01;94m foobar \x1B[0m"
echo -e "\x1B[01;93m foobar \x1B[0m"
echo -e "\x1B[01;91m foobar \x1B[0m"
echo -e "\x1B[01;90m foobar \x1B[0m"
echo -e "\x1B[01;89m foobar \x1B[0m"
echo -e "\x1B[01;36m foobar \x1B[0m"

এটি বর্ণগুলিকে সমস্ত রঙে ছাপিয়ে দেয়:

echo -e "\x1B[0;93m a \x1B[0m b \x1B[0;92m c \x1B[0;93m d \x1B[0;94m"

লুপের জন্য:

for (( i = 0; i < 17; i++ )); 
do echo "$(tput setaf $i)This is ($i) $(tput sgr0)"; 
done

এখানে চিত্র বর্ণনা লিখুন


2
যাইহোক, এটি উবুন্টুর একটি নির্দিষ্ট সংস্করণ ইনস্টল করার উপর নির্ভর করে না, তবে পুটি ব্যবহার করে!
uriseit

10

পাঠযোগ্যতার জন্য

আপনি যদি কোডটির পঠনযোগ্যতা উন্নত করতে চান তবে আপনি echoপ্রথমে স্ট্রিংটি ব্যবহার করতে পারেন পরে রঙটি যুক্ত করে sed:

echo 'Hello World!' | sed $'s/World/\e[1m&\e[0m/' 

1
আমি সত্যিই এই উত্তর পছন্দ! আপনি দয়া করে সেড কমান্ডের মধ্যে যদিও ব্যাখ্যা করতে পারেন?
প্যাট্রিক

2
$ '<something>' বাশের জন্য, সেডের জন্য নয়। এটি বাশকে escape ইটিকে একটি পালানোর ক্রম হিসাবে প্রক্রিয়া করতে এবং "অব্যাহতি" অক্ষরটি ভিতরে রাখার জন্য বলে Usually কমান্ড।
dsz

10

আমি এই বিষয়ে তথ্যটি সন্ধান করার সময় শাকিবা মোশিরির দুর্দান্ত উত্তর পেয়েছি ... তখন আমার ধারণা ছিল ... এবং এটি ব্যবহার করার পক্ষে অত্যন্ত সহজ একটি কার্যক্রমে শেষ হয়েছিল 😁
সুতরাং আমি এটি ভাগ করে নিতে পারি 😉

https://github.com/ppo/bash-colors

ব্যবহার: $(c <flags>) একটি echo -eবা ভিতরেprintf

 ┌───────┬─────────────────┬──────────┐   ┌───────┬─────────────────┬──────────┐
  Code   Style            Octal        Code   Style            Octal    
 ├───────┼─────────────────┼──────────┤   ├───────┼─────────────────┼──────────┤
    -    Foreground       \033[3..       B    Bold             \033[1m  
    _    Background       \033[4..       U    Underline        \033[4m  
 ├───────┼─────────────────┼──────────┤      F    Flash/blink      \033[5m  
    k    Black            ......0m       N    Negative         \033[7m  
    r    Red              ......1m    ├───────┼─────────────────┼──────────┤
    g    Green            ......2m       L    Normal (unbold)  \033[22m 
    y    Yellow           ......3m       0    Reset            \033[0m  
    b    Blue             ......4m    └───────┴─────────────────┴──────────┘
    m    Magenta          ......5m 
    c    Cyan             ......6m 
    w    White            ......7m 
 └───────┴─────────────────┴──────────┘

উদাহরণ:

echo -e "$(c 0wB)Bold white$(c) and normal"
echo -e "Normal text… $(c r_yB)BOLD red text on yellow background… $(c _w)now on
  white background… $(c 0U) reset and underline… $(c) and back to normal."

8

আমার প্রিয় উত্তরটি এখন পর্যন্ত রঙিনএকো।

কেবলমাত্র অন্য একটি বিকল্প পোস্ট করার জন্য, আপনি এই ছোট্ট সরঞ্জামটি এক্সকোল পরীক্ষা করে দেখতে পারেন

https://ownyourbits.com/2017/01/23/colorize-your-stdout-with-xcol/

আপনি এটি গ্রেপের মতো ব্যবহার করেন এবং উদাহরণস্বরূপ এটি প্রতিটি স্টেটের জন্য এটির স্ট্যান্ডিনকে আলাদা রঙের সাথে রঙিন করবে

sudo netstat -putan | xcol httpd sshd dnsmasq pulseaudio conky tor Telegram firefox "[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+" ":[[:digit:]]+" "tcp." "udp." LISTEN ESTABLISHED TIME_WAIT

xcol উদাহরণ

মনে রাখবেন যে এটি যে কোনও নিয়মিত অভিব্যক্তি গ্রহণ করে যা সেড গ্রহণ করবে।

এই সরঞ্জামটি নিম্নলিখিত সংজ্ঞাগুলি ব্যবহার করে

#normal=$(tput sgr0)                      # normal text
normal=$'\e[0m'                           # (works better sometimes)
bold=$(tput bold)                         # make colors bold/bright
red="$bold$(tput setaf 1)"                # bright red text
green=$(tput setaf 2)                     # dim green text
fawn=$(tput setaf 3); beige="$fawn"       # dark yellow text
yellow="$bold$fawn"                       # bright yellow text
darkblue=$(tput setaf 4)                  # dim blue text
blue="$bold$darkblue"                     # bright blue text
purple=$(tput setaf 5); magenta="$purple" # magenta text
pink="$bold$purple"                       # bright magenta text
darkcyan=$(tput setaf 6)                  # dim cyan text
cyan="$bold$darkcyan"                     # bright cyan text
gray=$(tput setaf 7)                      # dim white text
darkgray="$bold"$(tput setaf 0)           # bold black = dark gray text
white="$bold$gray"                        # bright white text

আমি আমার স্ক্রিপ্টগুলিতে এই পরিবর্তনগুলি ব্যবহার করি

echo "${red}hello ${yellow}this is ${green}coloured${normal}"

6

এই উত্তরটি প্রসারিত করার জন্য, আমাদের অলসতার জন্য:

function echocolor() { # $1 = string
    COLOR='\033[1;33m'
    NC='\033[0m'
    printf "${COLOR}$1${NC}\n"
}

echo "This won't be colored"
echocolor "This will be colorful"

2
হার্ডকোড টার্মিনালটি পালাবে না। ব্যবহার tput; এটাই তার জন্য!
টবির গতি

@ টবিস্পাইট যদিও এটি বহু-প্ল্যাটফর্ম সমর্থন (তত্ত্ব অনুসারে) ক্ষেত্রে সত্য হতে পারে, যদি পোস্টারটি তাদের নিজস্ব বিশ্বে কাজ করে বলে মনে করে তবে কেন এই মতবিরোধ এবং অনুরূপ বিশ্বে অন্যদের কৌশলটি ব্যবহার থেকে বিরত করবেন? কেস পয়েন্টে আমি উবুন্টু ১.0.০৪ ব্যাশে অনুরূপ চেষ্টা করছি এবং এটি কাজ করে। এই প্ল্যাটফর্মের একমাত্র ব্যবহারকারী হিসাবে আমি এই উত্তরটি গ্রহণযোগ্য মনে করি। আমি এর tputজন্য scএবং rcযদিও ব্যবহার করব (কার্সার সংরক্ষণ করুন, কার্সার পুনরুদ্ধার করুন)। যদিও এই উত্তরটি আমাকে "অলস" বলে ডাকে এটি "ব্যবহারিক" বা "সরাসরি বিন্দু" হিসাবে অনুবাদ করা যেতে পারে।
উইনউইউউকস

আমার নিজস্ব সমাধান এর সাথে সাদৃশ্যপূর্ণ, খাঁটি বিল্ট-ইনগুলিতে খাঁটিভাবে সীমাবদ্ধ, কারণ একটি স্ক্রিপ্টের প্রতিটি বার্তার জন্য দুটি বাহ্যিক প্রক্রিয়া, সাবসেল ইত্যাদির জন্য কেবল একটি ... অপ্রীতিকর গন্ধ ছিল।
অমিত নাইডু

6

আপনি করতে পারেন বিভিন্ন রঙের সাথে বার্তা আউটপুট প্রদর্শন করতে:

echo -e "\033[31;1mYour Message\033[0m"

-ব্ল্যাক 0; 30 গাark় ধূসর 1; 30

-রেড 0; 31 হালকা লাল 1; 31

-গ্রীন 0; 32 হালকা সবুজ 1; 32

-শূন্য / কমলা 0; 33 হলুদ 1; 33

-ব্লু 0; 34 হালকা নীল 1; 34

- বেগুনি 0; 35 হালকা বেগুনি 1; 35

-সায়ান 0; 36 হালকা সায়ান 1; 36

-লাইট গ্রে 0; 37 সাদা 1; 37


5

আপনার কাঁচা এএনএসআই নিয়ন্ত্রণ সিকোয়েন্সগুলির উপর অবশ্যই স্পষ্টরূপে ট্রুপ্ট ব্যবহার করা উচিত।

কারণ এখানে প্রচুর পরিমাণে বিভিন্ন টার্মিনাল নিয়ন্ত্রণের ভাষা রয়েছে, সাধারণত কোনও সিস্টেমে একটি মধ্যবর্তী যোগাযোগ স্তর থাকে। প্রকৃত কোডগুলি বর্তমানে সনাক্ত করা টার্মিনাল ধরণের জন্য একটি ডাটাবেসে সন্ধান করা হবে এবং আপনি একটি এপিআই বা (শেল থেকে) একটি আদেশকে মানক অনুরোধগুলি দেন।

এই কমান্ডের এক tputtputসামর্থ্য নাম এবং যে কোনও পরামিতি নামক সংক্ষিপ্ত সংক্ষিপ্তসারগুলির একটি সেট গ্রহণ করে, যদি উপযুক্ত হয় তবে টার্মিনফো ডাটাবেসে সনাক্ত টার্মিনালের জন্য সঠিক অব্যাহতি সিকোয়েন্সগুলি সন্ধান করে এবং সঠিক কোডগুলি মুদ্রণ করে (টার্মিনালটি আশা করি বুঝতে পারে)।

থেকে http://wiki.bash-hackers.org/scriptting/terminalcodes

এটি বলেছিল, আমি বাশ-টিন্ট নামে একটি ছোট সহায়ক সহায়ক লাইব্রেরি লিখেছি , যা টিপটের উপরে আরও একটি স্তর যুক্ত করে, এটি ব্যবহারকে আরও সহজ করে তোলে (ইমো):

উদাহরণ: tint "white(Cyan(T)Magenta(I)Yellow(N)Black(T)) is bold(really) easy to use."

নিম্নলিখিত ফলাফল দেবে: এখানে চিত্র বর্ণনা লিখুন


5

আমি আপনার বর্তমান টার্মিনালের সাথে সুনির্দিষ্ট হার্ড কোডিং পলায়ন কোডগুলির পরিবর্তে, আপনার ব্যবহার করা উচিত tput

এটি আমার প্রিয় ডেমো স্ক্রিপ্ট:

#!/bin/bash

tput init

end=$(( $(tput colors)-1 ))
w=8
for c in $(seq 0 $end); do
    eval "$(printf "tput setaf %3s   " "$c")"; echo -n "$_"
    [[ $c -ge $(( w*2 )) ]] && offset=2 || offset=0
    [[ $(((c+offset) % (w-offset))) -eq $(((w-offset)-1)) ]] && echo
done

tput init

256 রঙের আউটপুট টিপুট দ্বারা


4

আমি ব্যবহার করছি এই রঙ মুদ্রণের জন্য

#!/bin/bash
#--------------------------------------------------------------------+
#Color picker, usage: printf $BLD$CUR$RED$BBLU'Hello World!'$DEF     |
#-------------------------+--------------------------------+---------+
#       Text color        |       Background color         |         |
#-----------+-------------+--------------+-----------------+         |
# Base color|Lighter shade| Base color   | Lighter shade   |         |
#-----------+-------------+--------------+-----------------+         |
BLK='\e[30m'; blk='\e[90m'; BBLK='\e[40m'; bblk='\e[100m' #| Black   |
RED='\e[31m'; red='\e[91m'; BRED='\e[41m'; bred='\e[101m' #| Red     |
GRN='\e[32m'; grn='\e[92m'; BGRN='\e[42m'; bgrn='\e[102m' #| Green   |
YLW='\e[33m'; ylw='\e[93m'; BYLW='\e[43m'; bylw='\e[103m' #| Yellow  |
BLU='\e[34m'; blu='\e[94m'; BBLU='\e[44m'; bblu='\e[104m' #| Blue    |
MGN='\e[35m'; mgn='\e[95m'; BMGN='\e[45m'; bmgn='\e[105m' #| Magenta |
CYN='\e[36m'; cyn='\e[96m'; BCYN='\e[46m'; bcyn='\e[106m' #| Cyan    |
WHT='\e[37m'; wht='\e[97m'; BWHT='\e[47m'; bwht='\e[107m' #| White   |
#-------------------------{ Effects }----------------------+---------+
DEF='\e[0m'   #Default color and effects                             |
BLD='\e[1m'   #Bold\brighter                                         |
DIM='\e[2m'   #Dim\darker                                            |
CUR='\e[3m'   #Italic font                                           |
UND='\e[4m'   #Underline                                             |
INV='\e[7m'   #Inverted                                              |
COF='\e[?25l' #Cursor Off                                            |
CON='\e[?25h' #Cursor On                                             |
#------------------------{ Functions }-------------------------------+
# Text positioning, usage: XY 10 10 'Hello World!'                   |
XY () { printf "\e[$2;${1}H$3"; }                                   #|
# Print line, usage: line - 10 | line -= 20 | line 'Hello World!' 20 |
line () { printf -v _L %$2s; printf -- "${_L// /$1}"; }             #|
# Create sequence like {0..(X-1)}                                    |
que () { printf -v _N %$1s; _N=(${_N// / 1}); printf "${!_N[*]}"; } #|
#--------------------------------------------------------------------+

সমস্ত মৌলিক রঙগুলি যুদ্ধ হিসাবে সেট করা হয় এবং কিছু ব্যবহারযোগ্য ফাংশন রয়েছে: এক্সওয়াই, লাইন এবং কুই। আপনার মধ্যে একটিতে এই স্ক্রিপ্টটি উত্স করুন এবং সমস্ত বর্ণ বর্ণ এবং ফাংশন ব্যবহার করুন।


3

এবং এটি আমি সমস্ত সংমিশ্রণটি দেখতে ব্যবহার করতাম এবং ঠিক করতাম কোনটি ভাল পড়বে:

for (( i = 0; i < 8; i++ )); do
    for (( j = 0; j < 8; j++ )); do
        printf "$(tput setab $i)$(tput setaf $j)(b=$i, f=$j)$(tput sgr0)\n"
    done
done

2

আমি তা অর্জনের জন্য সোয়াগ লিখেছি ।

আপনি ঠিক করতে পারেন

pip install swag

এখন আপনি সমস্ত এস্কেপ কমান্ডগুলি কোনও নির্দিষ্ট গন্তব্যটিতে টেক্সট ফাইল হিসাবে ইনস্টল করতে পারেন:

swag install -d <colorsdir>

অথবা এর মাধ্যমে আরও সহজ:

swag install

যা রঙ ইনস্টল করবে ~/.colors

হয় আপনি এগুলি ব্যবহার করুন:

echo $(cat ~/.colors/blue.txt) This will be blue

বা এই উপায়, যা আমি আসলে আরও আকর্ষণীয় বলে মনে করি:

swag print -c red -t underline "I will turn red and be underlined"

এসিইনিমাতে এটি পরীক্ষা করে দেখুন !


0

এখানে একটি সামান্য ছোট স্ক্রিপ্ট, আমি সম্প্রতি একসাথে রেখেছি, এটি "টয়লেট" ব্যবহারের পরিবর্তে কোনও পাইপযুক্ত ইনপুট রঙিন করবে।

File: color.bsh

#!/usr/bin/env bash 

## A.M.Danischewski 2015+(c) Free - for (all (uses and 
## modifications)) - except you must keep this notice intact. 

declare INPUT_TXT=""
declare    ADD_LF="\n" 
declare -i DONE=0
declare -r COLOR_NUMBER="${1:-247}"
declare -r ASCII_FG="\\033[38;05;"
declare -r COLOR_OUT="${ASCII_FG}${COLOR_NUMBER}m"

function show_colors() { 
   ## perhaps will add bg 48 to first loop eventually 
 for fgbg in 38; do for color in {0..256} ; do 
 echo -en "\\033[${fgbg};5;${color}m ${color}\t\\033[0m"; 
 (($((${color}+1))%10==0)) && echo; done; echo; done
} 

if [[ ! $# -eq 1 || ${1} =~ ^-. ]]; then 
  show_colors 
  echo " Usage: ${0##*/} <color fg>" 
  echo "  E.g. echo \"Hello world!\" | figlet | ${0##*/} 54" 
else  
 while IFS= read -r PIPED_INPUT || { DONE=1; ADD_LF=""; }; do 
  PIPED_INPUT=$(sed 's#\\#\\\\#g' <<< "${PIPED_INPUT}")
  INPUT_TXT="${INPUT_TXT}${PIPED_INPUT}${ADD_LF}"
  ((${DONE})) && break; 
 done
 echo -en "${COLOR_OUT}${INPUT_TXT}\\033[00m"
fi 

তারপরে এটিকে রঙিন লাল (196) দিয়ে কল করুন:
$> echo "text you want colored red" | color.bsh 196


রঙিন লুপ যুক্তি এই মার্জিত আসকি

-1

নির্দেশ করে:

echo_red(){
    echo -e "\e[1;31m$1\e[0m"
}
echo_green(){
    echo -e "\e[1;32m$1\e[0m"
}
echo_yellow(){
    echo -e "\e[1;33m$1\e[0m"
}
echo_blue(){
    echo -e "\e[1;34m$1\e[0m"
}

নোট করুন যে ইকো_গ্রিন ফাংশনটিতে 33-র পরিবর্তে 32 কোড থাকতে হবে b
ড্যানিয়েল

-2

এখানে সহজ এবং পঠনযোগ্য সমাধান is বাশজ ( https://sourceforge.net/projects/bashj/ ) এর সাহায্যে আপনি কেবল এই লাইনের একটি বেছে নিতে পারেন:

#!/usr/bin/bash

W="Hello world!"
echo $W

R=130
G=60
B=190

echo u.colored($R,$G,$B,$W)

echo u.colored(255,127,0,$W)
echo u.red($W)
echo u.bold($W)
echo u.italic($W)

Y=u.yellow($W)
echo $Y
echo u.bold($Y)

256x256x256 আপনার টার্মিনাল অ্যাপ্লিকেশনে রঙ সমর্থন থাকলে রঙগুলি উপলব্ধ।


-3

থ্রেড থেকে অন্যান্য সমাধানগুলি মিশ্রন করার পরে আমি এখানে npm scriptsআউটপুট (গিটব্যাশ সিএলআই) রঙ পেতে কীভাবে পরিচালনা করেছি :

{
    "deploy": "echo \u001b[1;32m && ng build && echo \u001b[1;0mdeploy {\u001b[1;33mcopy\u001b[1;0m: \u001b[1;32m0% && cp -r -f dist/packaged/* \\\\SERVER-01\\dist\\ && echo \u001b[1;0mdeploy {\u001b[1;33mcopy\u001b[1;0m} \u001b[1;34m\u001b[1;1m100% DEPLOYED"
}

এখানে চিত্র বর্ণনা লিখুন


-4

ঠিক সেখানে কিছুটা বাইরে, গ্রেপের মধ্য দিয়ে যাওয়ার ফলে এটি লাল (তবে কেবল লাল) হিসাবে হাইলাইট হবে। আপনি নামযুক্ত পাইপগুলিও ব্যবহার করতে পারেন যাতে আপনার স্ট্রিংটি লাইনের শেষের নিকটে আসে:

 grep '.*' --color=always <(echo "foobar")

আপনি আপনার পছন্দসই রঙ নির্বাচন করতে সক্ষম হচ্ছেন না। রঙিন ইউটিলিটি হিসাবে গ্রেপ করা সত্যিই প্রশ্নবিদ্ধ: পি
আহমেদ মাসুদ

আসলেই নয়, ওপি নির্দিষ্টভাবে উল্লেখ করেছে যে তারা লাল চায়। আমি সম্মত হই যে গ্রেপ ব্যবহারের চেয়ে আরও ভাল বিকল্প রয়েছে তবে এটি তারা যা চেয়েছিল তা অর্জন করে এবং আরও জটিল কিছু শিখতে বাঁচায়।
ফাইনালডিউটি

-5
red='\e[0;31m'
NC='\e[0m' # No Color
echo -e "${red}Hello Stackoverflow${NC}"

এই উত্তরটি সঠিক, বাদে রঙের কলটি কোটের মধ্যে থাকা উচিত নয়।

echo -e ${red}"Hello Stackoverflow"${NC}

কৌতুক করা উচিত।


3
উদ্ধৃতি ভিতরে সূক্ষ্ম কাজ করে। -ই সুইচ মূল্যায়নে কী আছে তা মূল্যায়ন করে। বাশ-এক্স ব্যবহার করে উভয় (অভ্যন্তরীণ এবং বাইরের কোট) চালানো একই নির্বাহিত কমান্ডকে আউটপুট দেয় echo -e '\e[0;31mHello Stackoverflow\e[0m'। সুতরাং এটি বাশ জন্য একই।
নাব
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.