다음 진술은 사실입니다.
watch
새 쉘에서 명령을 실행합니다 sh
.
.bashrc
별칭 ls
으로는 ls --color=auto
색상을 활성화합니다.
sh
bash
별칭을 상속 받거나 사용하지 않습니다 .
따라서를 watch
실행 ls
하면 색상을 요구하지 않고 일반 이전 버전 만 실행합니다. 이것을 피할 수는 있지만, aditya가 지적한 것처럼 색상을 watch
올바르게 처리하려면 색상을 활성화해야합니다 .
작업 예 ls
는 다음과 같습니다.
watch --color -- ls --color=always
--color
시계를 통과하지 못하면 여러 가지 못생긴 색상 코드가 인라인으로 표시됩니다.
ls --color
로 해석됩니다 ls --color=always
.
ls --color=auto
시계에서 색상을 인쇄 하지 않습니다 . 이것은 터미널 자체에서 색상 지원을 유추하고 있음을 나타냅니다.
이유에 대한 자세한 내용 은 워치 쉘이 실제 터미널을 생각하는지 테스트 할 수 있습니다 .
$ bash -c '[[ -t 1 ]] && echo "real terminal"'
real terminal
$ watch -- "bash -c '[[ -t 1 ]] && echo "real terminal"'"
# ... nothing.
일부 응용 프로그램에서 색상을 켜야하는지 여부를 알기 위해 (또는 유사한) 것을보고있는 것 같습니다.