![파이프로 연결된 명령/프로그램 체인과 함께 watch 명령을 사용하는 방법](https://rvso.com/image/97221/%ED%8C%8C%EC%9D%B4%ED%94%84%EB%A1%9C%20%EC%97%B0%EA%B2%B0%EB%90%9C%20%EB%AA%85%EB%A0%B9%2F%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%20%EC%B2%B4%EC%9D%B8%EA%B3%BC%20%ED%95%A8%EA%BB%98%20watch%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
나는 보통 watch
Linux 유틸리티를 사용 하여 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
그렇다면 명령이 파이프로 연결된 명령 체인과 함께 작동하도록 하려면 어떻게 해야 할까요 (다른 명령을 스크립트 내에 넣는 것 제외)?
답변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 "!!"