Xác định trước màu sắc cho Terminal?


13

Tôi đã cố gắng nhớ làm thế nào tôi có thể xác định trước màu sắc bên trong .bashrctệp để chúng có thể được gọi khi tôi làm ${RED}chẳng hạn.

Tôi không thể nhớ nếu đây là cách làm đúng, nhưng nó là thứ như thế này nếu tôi có thể nhớ;

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

một cái khác tôi nhớ, đã sử dụng functionđể nó có thể được sử dụng bất cứ lúc nào ở bất cứ đâu. Tôi đã có một tập tin chỉ cho tôi cách làm điều này nhưng tôi đã mất tập tin này trong đó chỉ ra cách thực hiện và tôi không thể nhớ nó diễn ra như thế nào.

Câu trả lời:


12

Bạn có thể định nghĩa một hàm trong ~/.bashrcnhư sau

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

Nguồn ~/.bashrcnhư . ~/.bashrchoặc mở một thiết bị đầu cuối mới và thử.

nhập mô tả hình ảnh ở đây

Ngoài ra, bạn có thể viết màu trong khi viết một cái gì đó trên thiết bị đầu cuối bằng cách sử dụng echohoặc printfnhư sau,

nhập mô tả hình ảnh ở đây


Đây có vẻ như là một cách thân thiện và sạch sẽ hơn để làm điều này.


3

Bạn có thể đã thấy $'...'cú pháp khiến shell giải thích các chuỗi dấu gạch chéo ngược:

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

Một cách khác để làm điều này, sử dụng 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

Bạn có thể kết hợp chúng với các hàm bao trong câu trả lời của souravc; bạn sẽ không cần -e.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.