표시 색상을 사용하는 일부 명령은 시계와 함께 사용하면 색상이 사라집니다.
watch -n 1 node file.js
어떻게 든 색상을 되돌릴 수 있습니까?
표시 색상을 사용하는 일부 명령은 시계와 함께 사용하면 색상이 사라집니다.
watch -n 1 node file.js
어떻게 든 색상을 되돌릴 수 있습니까?
답변:
watch
와 함께 사용하기 위해 여기에 왔습니다 git diff
. FWIW, 즉 당신이 통과해야 일을 얻을 --color=always
에 git diff
(예를 들면 watch --color git diff --color=always
.
사용하지 마십시오 watch
... 시계 프로그램을 사용하면 터미널에 쓰고 있지 않음을 감지하고 색상을 제거 할 수 있습니다. 제어 코드를 유지하려면 특정 프로그램 플래그를 사용해야합니다.
깃발을 모르거나없는 경우 다음과 같이 가난한 사람을 감시 할 수 있습니다.
while sleep <time>; do clear; <command>; done
약간의 깜빡임 (시계가 "이중 버퍼링"으로 작동 함)이 있지만 어떤 경우에는 충분히 유용합니다.
이중 버퍼링 된 가난한 사람의 시계를 만드는 유혹을받을 수 있습니다.
while sleep <time>; do <command> > /tmp/file; clear; cat /tmp/file; done
그러나 "나는 터미널에 쓰고 있지 않습니다"기능을 다시 누르게됩니다.
while sleep <time>; do clear; <command> | tee /tmp/file; done
대신에 >
와 cat
?
watch
do 처럼 색상 코드를 제거 하고 명령이 깜박이는 것을 방지하지 않습니다
watch
while sleep <time> ; do x="$( <command> 2>&1 )" ; clear ; echo "$x" ; done
-셸 내장 기능 만 사용하여 화면을 지우고 출력을 표시하므로 깜박임이 가장 적은 대안입니다.
watch
몇 줄의 셸 스크립트에서 의 기본적이고 불필요한 작업을 복제 할 수 있습니다 .
$ cat cheapwatch
#!/bin/sh
# Not quite your Rolex
while true ; do
clear
printf "[%s] Output of %s:\n" "$(date)" "$*"
# "$@" <- we don't want to do it this way, just this:
${SHELL-/bin/sh} -c "$*"
sleep 1 # genuine Quartz movement
done
$ ./cheapwatch ls --color # no problem
결국, 매우 영리한 사람 tr
이이 스크립트에 명령을 해킹하여 제어 문자를 제거하고 사용자가 --color
해당 논리를 비활성화 하도록 강제합니다 . 당분간이 구현의 순진함은 색을 먹는 괴물을 멀리하는 것입니다.
옵션 watch
이없고 --color
어떤 이유로 든 패키지를 업그레이드 할 수없는 상황에 처해 있다면 이것을 던져도됩니다.
예
시계는 컬러 출력으로 작동합니다. 그것은 procps의 패키지 여기 (데비안에서 적어도) 귀하의 질문에 대한 버그 보고서됩니다의 일부입니다 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=129334 그들이 대답 어디에 당신이 procps의를 업데이트해야, 꾸러미
예를 들어 우분투 11.04에서이 패키지는 http://packages.debian.org/wheezy/procps에서 작동합니다 .
tl; dr
procps 업데이트
다른 답변이이 문제를 해결하지만이를 수행하는 가장 쉬운 방법은 unbuffer
도구를 사용하는 것 입니다. 사용하려면 다음을 수행하십시오.
$ watch --color 'unbuffer <your-program>'
이렇게하면 프로그램의 플래그를 활성화하는 제어 시퀀스를 찾을 필요가 없습니다. 그러나주의 할 점은 시계 버전이 --color
플래그를 지원해야한다는 것 입니다.
.NET을 사용하여 Debian 또는 Ubuntu에 unbuffer를 설치할 수 있습니다 sudo apt-get install expect
.
'unbuffer <command>'
-특정 명령을 사용하지 않고이 질문에 어떻게 대답합니까?
<command>
색상으로 실행하려는 특정 프로그램 으로 교체 하는 데 도움이 필요하십니까 ?
시계 설명서에서 :
인쇄되지 않는 문자는 프로그램 출력에서 제거됩니다. 이를 보려면 명령 파이프 라인의 일부로 "cat -v"를 사용하십시오.
하지만 어떻게 사용하는지 잘 모르겠습니다.
watch -c "ls --color|cat -v"
보여줍니다 ^[[0m^[[01;34mAgent^[[0m
.
watch --color ls --color=always .