כיצד לשנות את צבע הפלט של הד ב- Linux PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

כיצד לשנות את צבע הפלט של הד בלינוקס

מבוא

אל האני echo הפקודה מוציאה מחרוזת נתונה ל- צינור פלט סטנדרטי, בדרך כלל מצביע על הטרמינל. למרות שצינור הפלט הסטנדרטי יכול להצביע על ממשקים אחרים - ה echo הפקודה משמשת בדרך כלל להדפסה והצגת הודעות בטרמינל. כברירת מחדל, הטקסט של ההודעה המוצגת יורש את הצבע של טקסט אחר בטרמינל (שניתן להתאמה אישית בפני עצמו). עם זאת - ישנן מספר דרכים בהן תוכל לשנות את צבע הפלט echo – הן עבור מחרוזות בודדות והן עבור הודעות שלמות.

במדריך קצר זה, נסקור כיצד ניתן לשנות את צבע הפלט של echo במערכות מבוססות לינוקס, באמצעות קודי בריחה של ANSI, tput ואיך אתה יכול להפוך את התהליך הזה לפחות מילולי בתסריטי Bash.

שנה את צבע הפלט עם קודי Escape של ANSI

הדרך הקלה ביותר לשנות את הצבע היא באמצעות רצפי בריחה/קודים של ANSI. כל קודי הבריחה של ANSI מתחילים ב- Escape תו, שיכול להיות מיוצג בפורמטים שונים - 27 בעשרוניות, x1B בהקסדצימלי, כמפתח הבקרה ^[, או 33 בפורמט אוקטלי. לאחר מכן הרצף מלווה בפקודה:

33[command

איפה סוגר הפתיחה (מציג רצף בקרה) הוא אופציונלי, אבל עוזר להפריד בין הפקודה לדמות הבריחה. כאשר אתה שם א קוד צבע בתור הפקודה, זה משנה את צבע הטקסט המתקרב:

33[0;34

0;34 הוא הקוד של הצבע הכחול, למשל. עם זה לבד, אתה יכול לשנות את צבע הטקסט echo עם:

33[0;34Text

איפה Text יהיה צבע כחול. לחלופין, שקול סקריפט bash פשוט להדפסה "ברוכים הבאים לצרפת" בצבעי דגל צרפת:

#!/bin/bash  
BLUE='33[0;34m'
WHITE= '33[0;37m' 
RED= '33[0;31m'   
echo -e "${Blue}Welcome ${WHITE}to ${RED}France"

האופציונלי -e דגל של echo הפקודה מאפשרת לך להשתמש בתווים מיוחדים כמו n (קו חדש) ו t (טאב) בתוך מחרוזת הקלט.

לאחר הפעלת הסקריפט:

$ ./colors.sh

התוצאה היא:

כיצד לשנות את צבע הפלט של הד ב- Linux PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

קודי ה-ANSI אינם מוגבלים לצבע - אלא ניתנים ליישום גם עבור סגנון. הקודים 0..9 מייצגים סגנונות טקסט, בעוד הקודים 30...37 מייצגים צבעים:

צֶבַע קופונים סגנונות טקסט קופונים
שחור 30 טקסט פשוט 0
Red 31 טקסט מודגש 1
ירוק 32 טקסט בעוצמה נמוכה 2
חום / כתום 33 טקסט בקו תחתון 4
כָּחוֹל 34 טקסט מהבהב 5
סָגוֹל 35 טקסט בלתי נראה 8
ציאן 36 טקסט חוצה 9
אפור בהיר 37

בואו ניצור סקריפט bash כדי לחקור כמה מהאפשרויות הבאות:

#!/bin/bash
echo -e "33[0;33mSample text"
echo -e "33[1;33mBold text"
echo -e "33[2;33mLow intensity text"
echo -e "33[4;33mUnderline text"
echo -e "33[5;33mBlinking text"
echo -e "33[8;33mInvisible text"
echo -e "33[9;33mStrikethrough text"

הפעלת סקריפט זה מביאה ל:

כיצד לשנות את צבע הפלט של הד ב- Linux PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

עיין במדריך המעשי והמעשי שלנו ללימוד Git, עם שיטות עבודה מומלצות, סטנדרטים מקובלים בתעשייה ודף רמאות כלול. תפסיק לגוגל פקודות Git ולמעשה ללמוד זה!

באופן דומה, אתה יכול לשנות את צבע הרקע של טקסטים אלה באמצעות קודים 40..47:

צֶבַע קופונים
שחור 40
Red 41
ירוק 42
חום / כתום 43
כָּחוֹל 44
סָגוֹל 45
ציאן 46
אפור בהיר 47

שינוי הרקע של מחרוזת נתונה מסתכם באותו כלל כמו בעת שינוי צבע הגופן - הקוד עצמו משנה את ההתנהגות:

#!/bin/bash
BLUE='33[0;44m'
BLACK='33[0;30m'
WHITE='33[0;30;47m'
RED='33[0;41m'
echo -e "${BLUE}Welcome ${WHITE}to ${RED}France"

הערה: ככלל אצבע - ניתן לתרגם צבעי גופן לצבעי רקע על ידי הוספת 10. 30 הוא צבע גופן שחור, 40 הוא צבע רקע שחור.

שנה את צבע הפלט עם ה-tput

חלופה לקודי ANSI היא שימוש ב- tput פקודה:

$ tput setaf color_code

setf מאפשר 8 צבעים, בעוד setaf מאפשר 256 צבעים אז בהתאם לפקודה שבה אתה משתמש, אתה יכול לעבור ביניהם 0..7 ו 0..255 בתור קודי הצבע. שניהם פקודות להקדיש 0..7 לאותם קודי צבע, בעוד עם setaf, 8..15 הם צבעים בעוצמה גבוהה, ו 16..231 הם גוונים שונים של 8 הראשונים, ו 232..255 הם צבעי גווני אפור:

כיצד לשנות את צבע הפלט של הד ב- Linux PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.
אשראי: ויקיפדיה

לבסוף, tput מאפשר גם לשנות את צבע הרקע, להוסיף מודגש, להוריד את העוצמה וכו' עם פקודות אחרות:

סגנונות טקסט פקודות
צבע החזית setaf
צבע רקע setab
אין סגנון sgv0
טקסט מודגש סיכה
טקסט בעוצמה נמוכה שמש
טקסט בקו תחתון smul
טקסט מהבהב למצמץ
טקסט הפוך לְהַאִיץ

בואו ניצור סקריפט אחר שמשתמש tput כדי לשנות את צבע הפלט echo:

#!/bin/bash
YELLOW=`tput setaf 3`
echo "${YELLOW}Changing"
WHITE=`tput setaf 7 bold`
echo "${WHITE}Colors"
BLUE=`tput setaf 4 smul`
echo "${BLUE}With tput"
CYAN=`tput setaf 6 blink`
echo "${CYAN}is less"
RED=`tput setab 1 setaf 7`
echo "${RED}verbose!"

סקריפט זה ידפיס את הפלט הבא בטרמינל:

כיצד לשנות את צבע הפלט של הד ב- Linux PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

הפקודה tput מספקת דרך קלה להדפיס כל צבע באמצעות קוד צבע פשוט. כעת ניצור סקריפט שיכול להדפיס כל קוד צבע זמין עבור הפקודה tput:

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

זה ידפיס 0 עד 255 צבעים והקודים שלהם:

כיצד לשנות את צבע הפלט של הד ב- Linux PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

סיכום

במדריך הקצר הזה – בדקנו כיצד ניתן לשנות את הצבע של echoהפלט של לינוקס - באמצעות ANSI Escape Sequences וה- tput פקודה.

כמו כן, בדקנו כיצד ניתן להפוך את התהליך לפחות מילולי באמצעות משתני Bash, לצבוט צבעי רקע וטקסט בסגנון.

בול זמן:

עוד מ Stackabuse