Theo tôi .bashrc
, tôi sử dụng mã màu đầu cuối ANSI để tô màu các bit khác nhau. Nó trông như thế này:
PS1='\u@\h:\w\[\033[33m\]$(virtual_env)\[\033[32m\]$(git_branch)\[\033[0m\]$ '
trong đó virtual_env
và git_branch
là các hàm bash tạo ra các công cụ trên thiết bị xuất chuẩn.
Bây giờ, để dễ đọc và sửa đổi hơn, tôi muốn lưu trữ mã màu theo các biến và tham khảo chúng, thay vì nhúng chúng trực tiếp vào PS1
. Vì vậy, tôi có một loạt các biến như thế này:
GREEN="\[\033[32m\]"
YELLOW="\[\033[33m\]"
RESET="\[\033[0m\]"
Tôi muốn có thể viết một cái gì đó như:
PS1='\u@\h:\w${YELLOW}$(virtual_env)${GREEN}$(git_branch)${RESET}$ '
Nhưng điều này không hoạt động - mã màu hiển thị trong lời nhắc, giống như chúng đã thoát. Màu sắc hoạt động chính xác nếu tôi sử dụng dấu ngoặc kép thay thế PS1
, nhưng sau đó dấu nhắc chỉ thay đổi khi tôi thực hiện source ~/.bashrc
.
Tôi đã thử những thứ khác tôi đã nhìn thấy người làm - sử dụng printf
, sử dụng dấu nháy đơn cho các màu sắc, đưa \[
và \]
trong PS1
thay vì biến màu sắc, nhưng không có vẻ làm việc.
Làm thế nào tôi có thể sử dụng các biến cho mã màu?
.bashrc
?