กำหนดสีล่วงหน้าสำหรับเทอร์มินัลหรือไม่


13

ฉันพยายามจำว่าฉันสามารถกำหนดสีไว้ล่วงหน้าภายใน.bashrcไฟล์ได้อย่างไรเพื่อที่พวกเขาจะได้รับการเรียกเมื่อฉันทำ${RED}เช่นนั้น

ฉันจำไม่ได้ว่านี่เป็นวิธีที่ถูกต้องหรือไม่ แต่เป็นเช่นนี้ถ้าฉันจำได้

NC="\033[0;0;0m"      # no color or formatting
RED="\033[1;49;91m"   # color red
BLU="\033[1;49;94m"   # color blue
GRN="\033[1;49;32m"   # color green

อีกฉันจำได้ว่ากำลังใช้อยู่functionดังนั้นจึงสามารถใช้ได้ทุกที่ทุกเวลา ฉันมีไฟล์ที่แสดงให้ฉันเห็นถึงวิธีการทำ แต่ฉันทำไฟล์นี้หายซึ่งแสดงวิธีการทำและฉันจำไม่ได้ว่ามันเป็นอย่างไร

คำตอบ:


12

คุณสามารถกำหนดฟังก์ชั่นในของคุณ~/.bashrcดังนี้

showred(){
    export RED='\033[1;49;91m'
    export NC='\033[0;0;0m'
    echo -e $RED"$@"$NC
}

มา~/.bashrcเป็น. ~/.bashrcหรือเปิดสถานีและใหม่ลอง

ป้อนคำอธิบายรูปภาพที่นี่

นอกจากนี้คุณสามารถเขียนสีในขณะที่เขียนบางอย่างบนเทอร์มินัลโดยใช้echoหรือprintfดังต่อไปนี้

ป้อนคำอธิบายรูปภาพที่นี่


ดูเหมือนว่าวิธีนี้จะเป็นมิตรและสะอาดกว่า


3

คุณอาจเห็น$'...'ไวยากรณ์ซึ่งทำให้เชลล์ตีความลำดับแบ็กสแลช:

NC=$'\e[0m'       # no color or formatting
RED=$'\e[1;31m'   # color red
GRN=$'\e[1;32m'   # color green
BLU=$'\e[1;34m'   # color blue

อีกวิธีหนึ่งในการทำเช่นนี้โดยใช้tput :

NC=$(tput sgr0)                  # no color or formatting
RED=$(tput bold; tput setaf 1)   # color red
GRN=$(tput bold; tput setaf 2)   # color green
BLU=$(tput bold; tput setaf 4)   # color blue

คุณสามารถรวมสิ่งเหล่านี้เข้ากับฟังก์ชันตัวตัดคำในคำตอบของ souravc -eคุณจะไม่ต้อง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.