나는 보통 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 "!!"