파이프라인 명령/프로그램 체인과 함께 watch 명령을 사용하는 방법

파이프라인 명령/프로그램 체인과 함께 watch 명령을 사용하는 방법

나는 보통 Linux 유틸리티를 사용하여 매초 마다 watch반복적으로 명령의 출력을 봅니다 n.watch df -h /some_volume/

watch하지만 다음과 같은 일련의 파이프 명령을 사용할 수 없는 것 같습니다 .

$ watch ls -ltr|tail -n 1

이렇게 하면 watch실제로 관찰 하고 아무것도 출력되지 않는 곳 ls -ltr으로 출력이 전달됩니다 .tail -n 1

내가 이것을 시도하면 :

$ watch (ls -ltr|tail -n 1)

알겠어요

$ watch: syntax error near unexpected token `ls'

어떤 이유로 인해 다음 중 하나가 실패합니다.

$ watch <(ls -ltr|tail -n 1)

$ watch < <(ls -ltr|tail -n 1)

$ watch $(ls -ltr|tail -n 1)

$ watch `ls -ltr|tail -n 1)`

마지막으로 이렇게 하면:

$ watch echo $(ls -ltr|tail -n 1)

$()내부 명령 은 한 번만 실행되고 결과 출력 문자열은 항상 텍스트("watch")로 인쇄되기 때문에 지정된 간격 내에서 출력에 변화가 없습니다 .

그렇다면 이 명령이 파이프라인 명령 체인과 함께 작동하도록 하려면 어떻게 해야 할까요 watch(그렇지 않으면 스크립트에 넣습니까)?

답변1

watch 'command | othertool | yet-another-tool'

답변2

watch -n 1 "ls -lrt | tail -n20; date"

지속적으로 배관 및 실행을 유지합니다.

답변3

'작은따옴표( )와 큰따옴표( )를 조합하여 사용하세요 ". 예를 들어:

watch -n 1 "links -dump 127.0.0.1/server-status | grep -e '\S' -Fe 'www.'"

답변4

명령을 실행한 후 이를 보고 싶다고 가정해 보겠습니다.

ls -lrt | tail -n20; date
watch "!!"

관련 정보