วิธีการเปลี่ยนสีเอาต์พุตของ Echo ใน Linux PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

วิธีเปลี่ยนสีเอาต์พุตของ Echo ใน Linux

บทนำ

พื้นที่ echo คำสั่งส่งออกสตริงที่กำหนดให้กับ ท่อส่งออกมาตรฐานโดยทั่วไปจะชี้ไปที่เทอร์มินัล แม้ว่าท่อเอาต์พุตมาตรฐานสามารถชี้ไปที่อินเทอร์เฟซอื่นได้ – the echo คำสั่งมักใช้เพื่อพิมพ์และแสดงข้อความในเทอร์มินัล โดยค่าเริ่มต้น ข้อความที่แสดงจะสืบทอดสีของข้อความอื่นในเทอร์มินัล (ซึ่งปรับแต่งได้ในตัวของมันเอง) อย่างไรก็ตาม – มีหลายวิธีที่คุณสามารถเปลี่ยนสีเอาต์พุตของ echo – ทั้งสำหรับสตริงแต่ละรายการและสำหรับข้อความทั้งหมด

ในคำแนะนำสั้น ๆ นี้ เราจะมาดูกันว่าคุณสามารถเปลี่ยนสีเอาต์พุตของ . ได้อย่างไร echo ในระบบที่ใช้ Linux โดยใช้รหัสหลีกเลี่ยง ANSI tput และวิธีทำให้กระบวนการนี้ละเอียดน้อยลงในสคริปต์ทุบตี

เปลี่ยนสีเอาต์พุตด้วย ANSI Escape Codes

วิธีที่ง่ายที่สุดในการเปลี่ยนสีคือการใช้เอสเควนซ์ซีเควนซ์/โค้ดของ ANSI รหัสหลีกเลี่ยง ANSI ทั้งหมดเริ่มต้นด้วย Escape ตัวอักษรซึ่งสามารถแสดงในรูปแบบต่างๆ – 27 เป็นทศนิยม x1B ในเลขฐานสิบหกเป็นปุ่มควบคุม ^[,หรือ 33 ในรูปแบบเลขฐานแปด ลำดับจะตามด้วยคำสั่ง:

33[command

โดยที่วงเล็บเปิด (ผู้แนะนำลำดับการควบคุม) เป็นทางเลือก แต่ช่วยแยกคำสั่งออกจากอักขระหลีก เมื่อคุณใส่ รหัสสี ตามคำสั่ง จะเปลี่ยนสีของข้อความที่กำลังจะมาถึง:

33[0;34

0;34 คือรหัสสำหรับสีน้ำเงินเป็นต้น ด้วยสิ่งนี้เพียงอย่างเดียว คุณสามารถเปลี่ยนสีของข้อความใน echo กับ:

33[0;34Text

ที่ไหน Text จะเป็นสีน้ำเงิน อีกทางหนึ่ง ให้พิจารณาสคริปต์ทุบตีอย่างง่ายในการพิมพ์ "ยินดีต้อนรับสู่ประเทศฝรั่งเศส" ในสีของธงชาติฝรั่งเศส:

#!/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

ส่งผลให้:

วิธีการเปลี่ยนสีเอาต์พุตของ Echo ใน Linux PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

รหัส ANSI ไม่ได้จำกัดแค่สี แต่ยังสามารถนำไปใช้กับสไตล์ได้อีกด้วย โค้ด 0..9 แสดงถึงรูปแบบข้อความในขณะที่รหัส 30...37 เป็นตัวแทนของสี:

สี รหัส ลักษณะข้อความ รหัส
Black 30 ข้อความธรรมดา 0
สีแดง 31 ข้อความตัวหนา 1
สีเขียว 32 ข้อความความเข้มต่ำ 2
น้ำตาล / ส้ม 33 ขีดเส้นใต้ข้อความ 4
สีน้ำเงิน 34 ข้อความกะพริบ 5
สีม่วง 35 ข้อความที่มองไม่เห็น 8
Cyan 36 ข้อความขีดทับ 9
สีเทาอ่อน 37

มาสร้างสคริปต์ทุบตีเพื่อสำรวจตัวเลือกเหล่านี้:

#!/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"

การเรียกใช้สคริปต์นี้ส่งผลให้:

วิธีการเปลี่ยนสีเอาต์พุตของ Echo ใน Linux PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

ดูคู่มือเชิงปฏิบัติสำหรับการเรียนรู้ Git ที่มีแนวทางปฏิบัติที่ดีที่สุด มาตรฐานที่ยอมรับในอุตสาหกรรม และเอกสารสรุปรวม หยุดคำสั่ง Googling Git และจริงๆ แล้ว เรียน มัน!

ในทำนองเดียวกัน คุณสามารถเปลี่ยนสีพื้นหลังของข้อความเหล่านี้ได้โดยใช้รหัส 40..47:

สี รหัส
Black 40
สีแดง 41
สีเขียว 42
น้ำตาล / ส้ม 43
สีน้ำเงิน 44
สีม่วง 45
Cyan 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 เป็นสีโทนสีเทา:

วิธีการเปลี่ยนสีเอาต์พุตของ Echo ใน Linux PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.
เครดิต: วิกิพีเดีย

ในที่สุด tput ยังให้คุณเปลี่ยนสีพื้นหลัง เพิ่มตัวหนา ลดความเข้ม ฯลฯ ด้วยคำสั่งอื่นๆ:

ลักษณะข้อความ คำสั่ง
สีพื้นหน้า เซตาฟ
สีพื้นหลัง เซตาบ
ไม่มีสไตล์ sgv0
ข้อความตัวหนา กล้า
ข้อความความเข้มต่ำ สลัว
ขีดเส้นใต้ข้อความ สมุล
ข้อความกะพริบ กะพริบตา
ย้อนกลับข้อความ การหมุนรอบ

มาสร้างสคริปต์อื่นที่ใช้ 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!"

สคริปต์นี้จะพิมพ์ผลลัพธ์ต่อไปนี้ในเทอร์มินัล:

วิธีการเปลี่ยนสีเอาต์พุตของ Echo ใน Linux PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

คำสั่ง 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 สีและรหัส:

วิธีการเปลี่ยนสีเอาต์พุตของ Echo ใน Linux PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

สรุป

ในคำแนะนำสั้น ๆ นี้ – เราได้มาดูวิธีการเปลี่ยนสีของ echoเอาต์พุตของ Linux – โดยใช้ ANSI Escape Sequences และ the tput คำสั่ง

นอกจากนี้เรายังได้สำรวจวิธีที่คุณสามารถทำให้กระบวนการใช้ความละเอียดน้อยลงโดยใช้ตัวแปร Bash ปรับแต่งสีพื้นหลังและข้อความรูปแบบ

ประทับเวลา:

เพิ่มเติมจาก สแต็ค