보낸 사람 man watch
:
인쇄되지 않는 문자는 프로그램 출력에서 제거됩니다. "cat -v"를 사용하려면 명령 파이프 라인의 일부로 사용하십시오.
다음 cat -v
에서 컬러 출력을 보려면 어떻게 사용합니까?
watch ls -al --color
보낸 사람 man watch
:
인쇄되지 않는 문자는 프로그램 출력에서 제거됩니다. "cat -v"를 사용하려면 명령 파이프 라인의 일부로 사용하십시오.
다음 cat -v
에서 컬러 출력을 보려면 어떻게 사용합니까?
watch ls -al --color
답변:
올바른 명령은
watch --color "ls -a1 --color"
매뉴얼 페이지 나 --help 화면에는 설명되어 있지 않습니다. 그것을 찾으려면 문자열을 사용해야합니다.
watch --color "sudo iwlist wlan0 scanning | egrep 'Quality|ESSID' | egrep --color -i 'foobar|$'"
색상을 :( 먹을 것이다
watch
procps의 (대부분의 리눅스 배포판의 기본은, 내가 믿는)에서는이 --color
V3.3.2 이후 옵션을 선택합니다.
나는 'watch'명령으로 가능하지 않을 수도 있다고 생각합니다. 더 긴 방법은 다음과 같습니다.
while true; do clear; date;echo;ls -al --color; sleep 2; done
예를 들어 다음과 같이 스크립트에 넣을 수 있습니다.
echo "while true; do clear; date;echo;\$*;sleep 2; done" > watch2
chmod +x watch2
./watch2 ls -al --color
명확히하기 위해 'watch'명령으로 불가능하다고 생각하는 이유는 다음과 같습니다. cat -v를 사용하면 어떻게되는지 확인하십시오.
watch "ls -al --color|cat -v"
그것은 당신에게 당신이 원하는 것이 아니라고 생각하는 색상 제어 문자를 보여줍니다.
man watch
명확하게 제안하지 않으면서도 가능해야합니다 watch
.
cat -v
무슨 말인지 알기 위해 위와 같은 명령을 시도 하십시오 man watch
.
while true; do out=$(date;echo;ls -al --color);clear;echo $out;sleep 2;done
echo "$out"
. stackoverflow.com/q/2414150/86967
나와 같은 Mac을 사용하는 경우 watch
Homebrew에서 색상을 지원하지 않습니다.
원하는 것은 fswatch 이지만 아직 Homebrew가 아닙니다. 그것을 설치하려면 약간 더 복잡한 것을 원할 것입니다
https://raw.github.com/mlevin2/homebrew/116b43eaef08d89054c2f43579113b37b4a2abd3/Library/Formula/fswatch.rb
사용법 은 이 SO 답변 을 참조하십시오 .
watch
명령 은 파일 시스템에만 적용되며 명령에 적용됩니다
업데이트 : 최신 버전의 watch
문제가 해결되었습니다. 따라서 색상 watch --color
이 잘못된 경우 업데이트하는 것이 좋습니다 (시스템의 경우 procps
패키지에 있음).
색상 지원 watch --color
은 내 경험에서 제한적입니다 (하지만 충분합니다 ls -l --color
). 다음은 몇 가지 추가 기능, 가장 중요한 깜박임 감소 기능을 갖춘 @davr의 답변 버전입니다. .bashrc에 넣고로 사용할 수 있습니다 cwatch ls -l --color
.
# `refresh cmd` executes clears the terminal and prints
# the output of `cmd` in it.
function refresh {
tput clear || exit 2; # Clear screen. Almost same as echo -en '\033[2J';
bash -ic "$@";
}
# Like watch, but with color
function cwatch {
while true; do
CMD="$@";
# Cache output to prevent flicker. Assigning to variable
# also removes trailing newline.
output=`refresh "$CMD"`;
# Exit if ^C was pressed while command was executing or there was an error.
exitcode=$?; [ $exitcode -ne 0 ] && exit $exitcode
printf '%s' "$output"; # Almost the same as echo $output
sleep 1;
done;
}
당신은 또한 같은 것을 시도 할 수 있습니다
cwatch 'ls -l --color | head -n `tput lines`'
터미널에 출력보다 적은 라인이있는 경우 그러나 모든 선이 터미널 너비보다 짧은 경우에만 작동합니다. 내가 아는 가장 좋은 해결 방법은 다음과 같습니다.
cwatch 'let lines=`tput lines`-2; ls -l --color | head -n $lines'