Các tuyên bố sau là đúng:
watchchạy lệnh trong một vỏ mới , sh.
.bashrcbí danh lsnhư ls --color=autođể kích hoạt màu sắc.
shkhông kế thừa hoặc sử dụng bashbí danh.
Vì vậy, khi watchchạy ls, nó không yêu cầu màu sắc, nó chỉ chạy phiên bản cũ đơn giản. Bạn có thể phá vỡ điều này nhưng vì Aditya chỉ ra rằng bạn cũng cần bật màu watchcho nó để xử lý chúng đúng cách.
Một ví dụ hoạt động cho lslà:
watch --color -- ls --color=always
Nếu bạn không vượt qua --colorđể xem, bạn sẽ thấy một loạt các mã màu xấu xí.
ls --colorđược hiểu là ls --color=always.
ls --color=auto không in màu trong đồng hồ. Điều này cho thấy rằng nó suy ra hỗ trợ màu từ chính thiết bị đầu cuối.
Để biết thêm về lý do tại sao, chúng ta có thể kiểm tra xem vỏ đồng hồ có nghĩ là thiết bị đầu cuối thực sự hay không :
$ bash -c '[[ -t 1 ]] && echo "real terminal"'
real terminal
$ watch -- "bash -c '[[ -t 1 ]] && echo "real terminal"'"
# ... nothing.
Tôi nghi ngờ rằng một số ứng dụng đang xem xét điều đó (hoặc tương tự) để cho biết liệu chúng có nên bật màu hay không.