Thay đổi màu của văn bản tên tệp


7

Tôi đang viết các kịch bản để khởi tạo và cấu hình một hệ thống lớn với nhiều thành phần.
Mỗi thành phần có tệp nhật ký riêng.

Tôi muốn thay đổi màu của tên tệp thành phần thành màu đỏ bất cứ khi nào xảy ra lỗi trên cài đặt / cấu hình của nó.

Tôi làm nó như thế nào?

Câu trả lời:


9

Google sẽ tìm cho bạn câu trả lời. In Hello world in red:

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

Giải thích

<esc><attr>;<foreground>m

<esc>        = \033[  ANSI escape sequence, some environments will allow \e[ instead
<attr>       = 0      Normal text - bold possible with 1;
<foreground> = 31     30 + 1 = Color red - obviously!
m            = End of sequence

\033[0m       Reset colors (otherwise following lines will be red too)

Hãy xem http://en.wikipedia.org/wiki/ANSI_escape_code để biết danh sách đầy đủ các màu sắc và các chức năng khác (in đậm, v.v.).

Lệnh tput, nếu có, sẽ làm cho cuộc sống dễ dàng hơn:

echo -e "$(tput setaf 1)Hello world$(tput sgr0)"

Thậm chí có thể lưu các chuỗi trong vars để sử dụng đơn giản hơn.

ERR_OPEN=$(tput setaf 1)
ERR_CLOSE=$(tput sgr0)
echo -e "${ERR_OPEN}Hello world${ERR_CLOSE}"


1

Nếu bạn quan tâm đến việc thiết lập màu sắc như các biến, những điều sau đây có thể hữu ích cho việc đặt bảng màu cho tập lệnh bash

COL_BLACK="\x1b[30;01m"
COL_LIGHTBLACK="\x1b[30;11m"
COL_BLUE="\x1b[34;01m"
COL_LIGHTBLUE="\x1b[34;11m"
COL_CYAN="\x1b[36;01m"
COL_LIGHTCYAN="\x1b[36;11m"
COL_GRAY="\x1b[37;11m"
COL_LIGHTGRAY="\x1b[37;01m"
COL_GREEN="\x1b[32;01m"
COL_LIGHTGREEN="\x1b[32;11m"
COL_PURPLE="\x1b[35;01m"
COL_LIGHTPURPLE="\x1b[35;11m"
COL_RED="\x1b[31;01m"
COL_LIGHTRED="\x1b[31;11m"
COL_YELLOW="\x1b[33;01m"
COL_LIGHTYELLOW="\x1b[33;11m"

COL_RESET="\x1b[39;49;00m"

Adam (ở trên) có một lời giải thích hay về cách thức hoạt động của nó
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.