Tôi có một tập lệnh shell sử dụng đoạn mã sau để in dấu kiểm màu xanh lục trong đầu ra của nó:
col_green="\e[32;01m"
col_reset="\e[39;49;00m"
echo -e "Done ${col_green}✓${col_reset}"
Sau khi đọc về Trích dẫn ANSI-C của Bash , tôi nhận ra rằng tôi có thể sử dụng nó khi đặt các biến màu của mình và xóa -e
cờ khỏi tiếng vang của tôi .
col_green=$'\e[32;01m'
col_reset=$'\e[39;49;00m'
echo "Done ${col_green}✓${col_reset}"
Điều này có vẻ hấp dẫn, vì nó có nghĩa là thông điệp được in chính xác cho dù nó được chuyển sang tiếng vang dựng sẵn của Bash hay sử dụng bên ngoài /bin/echo
(Tôi đang sử dụng macOS).
Nhưng điều này có làm cho kịch bản ít di động? Tôi biết Bash và Zsh ủng hộ phong cách trích dẫn này, nhưng tôi không chắc về những người khác.