linux - كيفية تغيير لون خرج الصدى في لينكس




11 Answers

يمكنك استخدام رموز الهروب هذه ANSI :

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 باللون الأحمر.

من تعليق @ james-lim ، إذا كنت تستخدم أمر echo ، فتأكد من استخدام العلامة -e للسماح بتجاوزات الشرطة المائلة للخلف.

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

(لا تضف "\n" عند استخدام الصدى إلا إذا كنت تريد إضافة سطر فارغ إضافي)

أحاول طباعة نص في الوحدة باستخدام أمر echo.

أريد طباعة النص بلون أحمر. كيف أقوم بذلك؟




بعض المتغيرات التي يمكنك استخدامها:

# 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 على التوالي:

|       | 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 |
|             |              |                |                |                                       |

استثناء باش:

إذا كنت ستستخدم هذه الرموز في متغيرات bash الخاصة

  • PS0
  • PS1
  • PS2 (= هذا للحث)
  • PS4

يجب إضافة أحرف هروب إضافية حتى يتمكن bash تفسيرها بشكل صحيح. بدون إضافة أحرف هروب إضافية فإنها تعمل ولكنك ستواجه مشكلات عند استخدام Ctrl + r للبحث في السجل الخاص بك.

قاعدة استثناء لباش

يجب عليك إضافة \[ قبل أي رمز بدء ANSI وإضافة \] بعد أي منها.
مثال:
في الاستخدام العادي: \033[32mThis is in green\033[0m
لـ PS0 / 1/2/4: \[\033[32m\]This is in green\[\033[m\]

\[ هو لبدء تسلسل أحرف غير قابلة للطباعة
\] في نهاية تسلسل أحرف غير قابلة للطباعة

نصيحة: لحفظها ، يمكنك أولاً إضافة \[\] ثم وضع رمز ANSI الخاص بك بينهما:
- \[start-ANSI-code\]
- \[end-ANSI-code\]

نوع تسلسل اللون:

  1. 3/4 بت
  2. 8 بت
  3. 24 بت

قبل الغوص في هذه الألوان ، يجب أن تعرف 4 أوضاع مع هذه الرموز:

1. لون الوضع

يعدل نمط اللون NOT النص. على سبيل المثال ، جعل اللون لامعًا أو داكنًا.

  • 0 إعادة
  • 1; أخف من المعتاد
  • 2; أكثر قتامة من المعتاد

هذا الوضع غير مدعوم على نطاق واسع. هو دعم كامل في Gnome-Terminal.

2. وضع النص

هذا الوضع هو لتعديل نمط النص NOT لون.

  • 3; مائل
  • 4; أكد
  • 5; وامض (بطيء)
  • 6; وامض (سريع)
  • 7; عكسي
  • 8; إخفاء
  • 9; اقطع

وتكاد تكون مدعومة.
على سبيل المثال KDE-Konsole يدعم 5; لكن Gnome-Terminal لا يدعم Gnome ويدعم 8; لكن كيدي لا.

3. وضع المقدمة

هذا الوضع هو لتلوين المقدمة.

4. وضع الخلفية

هذا الوضع هو لتلوين الخلفية.

يعرض الجدول التالي ملخصًا لإصدار 3/4 بت من ألوان ANSI

|------------+----------+---------+-------+------------------+------------------------------+--------------------------------------|
| 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[32m |         |       | yellow           | echo -e "\033[33m####\033[m" |                                      |
|         34 | \033[32m |         |       | blue             | echo -e "\033[34m####\033[m" |                                      |
|         35 | \033[32m |         |       | purple           | echo -e "\033[35m####\033[m" | real name: magenta = reddish-purple  |
|         36 | \033[32m |         |       | cyan             | echo -e "\033[36m####\033[m" |                                      |
|         37 | \033[32m |         |       | 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 بت من ألوان ANSI

|------------+-----------+-----------+---------+------------------+------------------------------------+-------------------------|
| 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 بت من ألوان ANSI

|------------+-----------+-----------+---------+-------------+------------------------------------------+-----------------|
| 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

خلفية ملخص 8 بت في .gif

ملخص اللون مع قيمها

blinking على KDE-Terminal

رمز C بسيط يعرض لك المزيد

أداة أكثر تطوراً قمت بتطويرها للتعامل مع هذه الألوان:

طلقة لون الوضع

وضع النص لقطة

الجمع على ما يرام

المزيد من الطلقات


نصائح وحيل للمستخدمين المتقدمين والمبرمجين:

هل يمكننا استخدام هذه الرموز في لغة برمجة؟

نعم تستطيع. عشت في bash ، c ، سي ++ ، d perl ، python

هل تبطئ سرعة البرنامج؟

أعتقد لا.

يمكننا استخدام هذه على ويندوز؟

3/4-bit نعم ، إذا قمت بتجميع الرمز مع gcc
بعض لقطات الشاشة على وين -7

كيف تحسب طول الكود؟

\033[ = 2 ، أجزاء أخرى 1

أين يمكننا استخدام هذه الرموز؟

في أي مكان لديه مترجم tty
xterm ، gnome-terminal ، kde-terminal ، mysql-client-CLI وما إلى ذلك.
على سبيل المثال ، إذا كنت ترغب في تلوين الإخراج الخاص بك باستخدام mysql ، فيمكنك استخدام 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 (= Perl Colorize Character) ثم ضع الملف في PATH صالح ثم استخدمه في أي مكان تريده.

ls | pcc
df | pcc

داخل mysql أولا تسجيله pager ثم حاول:

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

لا يعالج Unicode.

هل تقوم هذه الرموز بالتلوين فقط؟

لا ، يمكنهم القيام بالكثير من الأشياء المثيرة للاهتمام. محاولة:

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)

هل هي متوفرة في Unicode؟

نعم فعلا. \u001b

أي إصدار من هذه الألوان هو الأفضل؟

من السهل استخدام 3/4-bit ، ولكنها دقيقة وجميلة لاستخدام 24-bit .
إذا لم تكن لديك خبرة في استخدام html فإليك برنامجًا تعليميًا سريعًا:
24 بت تعني: 00000000 و 00000000 و 00000000 . كل 8 بت لون محدد.
24..17 هو ل و 16..9 أجل و 8..1 ل
لذلك في html #FF0000 يعني وهنا هو: 255;0;0
في html #00FF00 تعني والتي هنا هي: 0;255;0
هل هذا منطقي؟ ما اللون الذي تريده بدمجه مع هذه القيم الثلاثة 8 بت.


مرجع:
ويكيبيديا
تسلسل هروب ANSI
tldp.org
tldp.org
misc.flogisoft.com/bash/tip_colors_and_formatting
بعض المدونات / صفحات الويب التي لا أتذكرها

شارات:




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

يتحكم [31m في لون النص:

  • 30 - 37 مجموعات لون المقدمة
  • 40 - 47 مجموعات لون الخلفية

يمكن العثور على قائمة أكمل من رموز الألوان هنا .

من الأفضل إعادة تعيين لون النص إلى \033[0m في نهاية السلسلة.




طريقة أنيقة لتغيير اللون فقط 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



تم الإجابة على هذا السؤال مراراً وتكراراً :-) ولكن لم لا.

أول استخدام tput هو أكثر المحمولة في البيئات الحديثة من حقن رموز ASCII يدويا من خلال echo -E

إليك وظيفة bash سريعة:

 say() {
     echo "[email protected]" | sed \
             -e "s/\(\(@\(red\|green\|yellow\|blue\|magenta\|cyan\|white\|reset\|b\|u\)\)\+\)[[]\{2\}\(.*\)[]]\{2\}/\1\[email protected]/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 @[email protected][[Success]] 

تحصل:

ملاحظات على قابلية tput

تم تحميل أول رمز tput(1) في سبتمبر 1986

tput(1) متوفر في X / Open spursics semantics في التسعينات (معيار 1997 يحتوي على الدلالات المذكورة أدناه).

لذلك ، هو ( تماما ) في كل مكان.




للقراءة

إذا كنت ترغب في تحسين إمكانية قراءة التعليمة البرمجية ، فيمكنك echo السلسلة أولاً ثم إضافة اللون لاحقًا باستخدام sed :

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



بفضل @ k-five لهذه الإجابة

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

نتيجة

آمل أن تساعدك هذه image على اختيار لون لباش الخاص بك: د




وهذا ما اعتدت أن أرى كل تركيبة وقررت ما يقرأ:

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



لا أحد لاحظت فائدة رمز ANSI 7 عكس الفيديو .

تبقى قابلة للقراءة على أي ألوان مخططات طرفي ، أو خلفيات سوداء أو بيضاء ، أو لوحات خيالية أخرى ، من خلال تبديل ألوان المقدمة والخلفية.

مثال ، لخلفية حمراء تعمل في كل مكان:

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

هذه هي الطريقة التي تبدو عند تغيير مخططات مضمنة الطرفية:

هذا هو البرنامج النصي loop المستخدم في gif.

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

انظر https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_(Select_Graphic_Rendition)_parameters




Here is a simple little script, I put together recently, that will colorize any piped input instead of using "Toilet".

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 

Then call it with color red (196):
$> echo "text you want colored red" | color.bsh 196




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

This answer correct, except that the call to colors should not be inside the quotes.

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

Should do the trick.




Related