유닉스 명령어 "watch"를 사용한 색상
사용하는 명령어 중에는 색상이 표시되는 것도 있습니다만, 사용할 때는 색이 없어지는 것을 주의해 주세요.
watch -n 1 node file.js
어떻게 해서든 다시 색을 칠 수 있을까요?
의 새로운 watch
이치노
를 들어, 「」입니다.watch --color ls -ahl --color
.
관련.
색상을 예상할 때 흑백 출력이 표시되는 경우 실행 중인 명령어가watch
단말기에 접속되어 있지 않은 것을 검출하고 있기 때문에, 칼라 출력을 강제할 필요가 있습니다.들어 다음과 같습니다.
CLICOLOR_FORCE=1 watch --color ls -ahl # MacOS
watch --color ls -ahl --color=always # Ubuntu
★★★의 ls
외 해야 할 수 이됩니다.watch
.
「 」를하지 주세요.watch
않은 할 수 .워치 프로그램을 사용하면 단말기에 쓰고 있지 않은 것을 검출하여 색을 제거할 수 있습니다.제어 코드를 유지하려면 특정 프로그램 플래그를 사용해야 합니다.
깃발을 모르거나 깃발이 없으면 가난한 사람을 감시하게 할 수 있다.
while sleep <time>; do clear; <command>; done
약간의 깜박임(시계는 "더블 버퍼"로 작동함)이 있지만, 어떤 경우에는 충분히 유용합니다.
당신은 아마도 이중 버퍼링된 가난한 남자의 시계를 만들고 싶을 것이다.
while sleep <time>; do <command> > /tmp/file; clear; cat /tmp/file; done
그 후, 「I write to terminal」기능이 재차 표시됩니다.
다른 답변에서는 이 문제를 해결하지만 가장 쉬운 방법은 도구를 사용하는 것입니다.사용하기 위해서는 다음 작업을 간단하게 실시합니다.
$ watch --color 'unbuffer <your-program>'
이렇게 하면 프로그램의 플래그를 활성화하는 제어 시퀀스를 찾을 필요가 없습니다., 할 점은 이 " " " " 를 것입니다.--color
Debian Ubuntu unbuffer를 사용하여 또는 할 수 .sudo apt-get install expect
.
할 수 .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 패키지의 일부입니다(적어도 debian에서는).여기에서는 procps 패키지를 업데이트해야 한다는 질문에 대한 버그 리포트입니다.http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=129334
예: ubuntu 11.04에서 이 패키지는 http://packages.debian.org/wheezy/procps에서 작동합니다.
dr;dr
업데이트프로세서
명령어에 색상 출력을 강제하는 옵션이 없는 경우 다른 응답은 작동하지 않을 수 있습니다.또는 나처럼 게으르고 올바른 설정을 찾기 위해 각 명령의 매뉴얼을 참조하지 않을 수도 있습니다.저는 몇 가지 다른 기술을 시도했습니다.
script
스크립트 명령어는 인터랙티브터미널 세션에 의해 실행되는 출력을 캡처합니다.「 」의 --color
「」watch
상상: :
watch --color "script -q -c '<command>' /dev/null"
-q
하기 .-c
및 "용"입니다./dev/null
는 로그 파일입니다.stdout에도 출력이 표시되므로 이 파일은 필요하지 않습니다.
편집: 이것은 지금까지의 옵션 중 가장 좋은 옵션입니다.이전의 솔루션은, 흥미가 있는 유저에게 남겨 두었습니다.
이전 시도: 터미널 창을 다시 씁니다.
하듯이 '''가 포함된 'clear
★★★★★★★★★★★★★★★★★」sleep
는 출력을 캡처하지 않고 단말기에서 명령어를 실행할 수 있습니다. 깜박임을 합니다. 를 들어, 깜박임, 깜빡임, 깜빡임, 깜빡임, 깜빡임 등이 있습니다.clear
는 모든 문자를 삭제한 후 명령어가 새 출력을 한 줄씩 인쇄하는 데 시간이 걸립니다.
도 이 하려면 ''를 하면 됩니다.tput
새을 볼 수 있도록 위에 새 출력을 쓰면서 이전 출력을 볼 수 있도록 합니다.
스크립트는 다음과 같습니다.
#!/bin/sh
trap "tput cnorm" EXIT # unhide the cursor when the script exits or is interrupted
# simple interval parameter parsing, can be improved
INTERVAL=2s
case $1 in
-n|--interval)
INTERVAL="$2"
shift; shift
;;
esac
clear # clear the terminal
tput civis # invisible cursor, prevents cursor flicker
while true; do
tput cup 0 0 # move cursor to topleft, without clearing the previous output
sh -c "$*" # pass all arguments to sh, like the original watch
tput ed # clear all to the end of window, if the new output is shorter
sleep "$INTERVAL"
done
이 스크립트는 색상의 문제를 해결하지만 다른 버그는 남아 있습니다.명령 출력의 행이 짧아지면 나머지 행이 지워지지 않으므로 출력이 실제와 일치하지 않을 수 있습니다!
시계 설명서:
인쇄되지 않은 문자는 프로그램 출력에서 삭제됩니다.명령어를 표시하려면 명령어 파이프라인의 일부로 cat -v를 사용합니다.
하지만 어떻게 사용하는지 잘 모르겠어요.
unbuffer
프로세스에서 TTY에 기입하고 있는지 여부를 알 수 없게 하는 훌륭한 방법입니다만, 주의할 필요가 있습니다.watch
는 아직 8비트 이상 색상을 지원하지 않습니다.
ls
좀 더 현대적인 걸 쓰거나exa
「」를 .--theme=ansi
(이른바)--theme=base16
동작합니다). git log
는 항상 3비트 컬러(소스)를 사용하기 때문에 개봉 즉시 동작합니다.
예:
watch --color -d -n 0.5 'mycommand file | bat --color=always --theme=ansi'
「 」를 할 수도 .-f
--color=always
.
또 다른 대안은 Pygments일 수 있다.
언급URL : https://stackoverflow.com/questions/3793126/colors-with-unix-command-watch
'programing' 카테고리의 다른 글
git에서 삭제된 파일의 스테이징 해제 (0) | 2023.04.17 |
---|---|
스타일을 통해 이벤트 기능을 설정하려면 어떻게 해야 합니까? (0) | 2023.04.17 |
"find: paths must preference expression:" 현재 디렉토리에서 파일을 찾는 재귀 검색을 지정하려면 어떻게 해야 합니까? (0) | 2023.04.17 |
디스크에 로그를 백업한 후에도 로그 파일의 DBCC SHRINGFILE이 크기를 줄이지 않음 (0) | 2023.04.17 |
다른 열이 null인 경우 열을 선택하십시오. (0) | 2023.04.17 |