Gói hàng lạ trong thiết bị đầu cuối với một dấu nhắc màu


5

Tôi có lý do để nghĩ rằng tôi đã thoát không đúng cách trong dấu nhắc bash của tôi (tôi nhận được gói ngẫu nhiên kỳ lạ trong Terminal).

Bất cứ ai có thể chỉ ra nó? Nó có vẻ ổn với tôi ...

export PS1="\033[0;35m\u\033[00m on \033[0;36m\h\033[00m in \033[0;33m\w\033[00m \$ "

Câu trả lời:


7

Đóng gói màu của bạn trong ngoặc []để chúng được tính là các ký tự không in được .

export PS1="\[\033[0;35m\]\u\[\033[00m\] on \[\033[0;36m\]\h\[\033[00m\] in \[\033[0;33m\]\w\[\033[00m\] \$ "

Thật không may, điều này dẫn đến các vấn đề gói dòng nổi tiếng bị vấy bẩn bởi bash.

Có tin vui tất cả mọi người, ánh sáng cuối đường hầm là thế tput.

echo $(tput setaf 6) This is cyan

Đặt tất cả các biến của bạn trước, sau đó sử dụng nó trong tập lệnh.

mg=$(tput setaf 5);cy=$(tput setaf 6);yl=$(tput setaf 3);rs=$(tput sgr0); echo $mg $USER $cy $HOSTNAME $yl $PWD $rs

Bạn có thể tìm thấy một tập lệnh mẫu trong dotfilesrepo github của tôi


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.