쉘 스크립트에서 터미널에 실시간 결과를 표시하는 방법은 무엇입니까?


9

결과를 실시간으로 보여주는 쉘 스크립트를 작성하려면 어떻게해야합니까?

top일정 시간이 지난 후 결과를 업데이트 하는 명령 과 같은 것 .

대체 텍스트


6
아마 사용하여 curses인터페이스를 ...하지만 난이 더 많이 프로그래밍 질문이다 생각하고 SO에 속한
xenoterracide

답변:



13

watch (1) 명령을 사용하여 정기적으로 스크립트를 실행할 수 있습니다.

watch -n 1 myscript.sh

이 실행됩니다 myscript.sh각 실행 사이 구석에 타임 스탬프로 화면을 삭제 1 초마다. 이 -d옵션을 사용할 수 있으며 실행 당 출력 차이를 강조 할 수도 있습니다.


방금 시계를 사용하여 대답하는 방법을 생각하고있었습니다.
Kevin M

나는 없습니다 watch. 좀 더 구체적으로 말씀해 주시겠습니까? 어떤 OS?
Chris 페이지

2

해당 데이터의 대부분은 일반적으로 / proc 가상 파일 시스템 프리미티브에 노출됩니다. 각 프로세스에는 PID라는 디렉토리의 / proc에 항목이 있습니다. 따라서 / proc / 5437은 5437 프로세스의 기본 요소를 갖습니다. 거기에서 프리미티브를 읽고 적절하게 파싱하면 top 이하는 일에 가깝습니다.

Top은 실제로이 정보를 파일에서 가져 오는 대신 커널에서 직접 추출하는 특정 함수 호출을 호출하여 작동합니다. bash에서 동일한 작업을 수행하려면 / proc 가상 파일 시스템에서 가져 오거나 to와 같은 다른 호출에서 추출해야합니다 ps.

실시간으로 볼 때, 최고 수준의 세부 수준에서는 불가능합니다. 실시간으로 보일만큼 충분히 시간을 얇게 할 수 있지만 여전히 시간 분할이 발생합니다.


2

Erm, top더 오랜 시간 동안 출력을 보고 있고 프로그램이 제대로 수행되고 있는지 확인하는 것이 아니라 htop 사용하는 것이 좋습니다 .

실시간 정보를 많이 제공하며 제어 및 관리가 더 쉽습니다.

막대 그래프 및 열과 같은 출력 레이아웃을 변경할 수 있습니다.


그는 특히 top 또는 htop에 관한 것이 아닌 일정한 간격으로 폴링하는 앱을 작성하는 방법을 묻고 있다고 생각합니다.
Chris

1

topCurses를 사용 하고 /proc파일 시스템을 읽는다


1
이없는 시스템을 제외하고 /proc. 정보를 얻는 또 다른 방법은 sysctl (8) / sysctl (3)입니다.
Chris 페이지
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.