Làm thế nào để lặp lại đúng văn bản màu trong bash?


0

Tôi có vấn đề sau:

Trên bash tôi đặt:

COLOR="0;31" #red color

Nếu tôi làm

echo -e "\e[00;31mRED\e[00m" 

tôi có

RED <- màu đỏ trên thiết bị đầu cuối

Tuy nhiên nếu tôi làm

echo -e "\e[0$COLORm \RED\e[00m"

Tôi chỉ nhận được

RED <- không có màu

Làm thế nào tôi có thể in bằng cách sử dụng màu sắc và $COLORbiến của tôi ?

Câu trả lời:


1

Bash không biết gì về biến COLORm. Nhưng ví dụ sau sẽ hoạt động

COLOR="0;31m"
echo -e "\e[0$COLOR \RED\e[0m"

0

Sử dụng ${var}- ví dụ \e[0;${COLOR}m- để tách tên biến khỏi văn bản xung quanh.

Cách khác, sử dụng printf "\e[0;%sm %s \e[m\n" "$COLOR" "RED"

(Lưu ý bên: \e[00;31mkhông cần thiết; \e[0;31mhoặc chỉ \e[;31mlà tốt. Áp dụng tương tự cho \e[00m)


0

Sử dụng dấu ngoặc nhọn để cô lập tên biến và loại bỏ sự mơ hồ trong các biểu thức trong đó tên biến là phụ thuộc vào một số ký tự bằng chữ (như thế giới $ {hello}) hoặc các vị trí khó hiểu khác:

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

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.