표시 색상을 사용하는 일부 명령은 시계와 함께 사용하면 색상이 사라집니다.
watch -n 1 node file.js
어떻게 든 색상을 되돌릴 수 있습니까?
답변
답변
사용하지 마십시오 watch
… 시계 프로그램을 사용하면 터미널에 쓰고 있지 않음을 감지하고 색상을 제거 할 수 있습니다. 제어 코드를 유지하려면 특정 프로그램 플래그를 사용해야합니다.
깃발을 모르거나없는 경우 다음과 같이 가난한 사람을 감시 할 수 있습니다.
while sleep <time>; do clear; <command>; done
약간의 깜빡임 (시계가 “이중 버퍼링”으로 작동 함)이 있지만 어떤 경우에는 충분히 유용합니다.
이중 버퍼링 된 가난한 사람의 시계를 만드는 유혹을받을 수 있습니다.
while sleep <time>; do <command> > /tmp/file; clear; cat /tmp/file; 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
.
답변
시계 설명서에서 :
인쇄되지 않는 문자는 프로그램 출력에서 제거됩니다. 이를 보려면 명령 파이프 라인의 일부로 “cat -v”를 사용하십시오.
하지만 어떻게 사용하는지 잘 모르겠습니다.