중지 및 다시 시작 명령을 반복하는 방법

중지 및 다시 시작 명령을 반복하는 방법

저는 일정 시간(이 질문에서는 10초라고 가정하겠습니다) 후에 다시 시작 명령을 반복하는 간단한 방법을 찾으려고 합니다. 단순화를 위해 문제의 명령이 이라고 가정해 보겠습니다 htop --tree.

지금까지의 시도: 명령을 실행한 다음 중지하세요.한 번명령어를 찾아서 실행하고 10초 후에 다시 멈췄습니다 timeout. 다시 한번 말씀드리자면, 주어진 간격마다 명령을 다시 실행할 수 있는 timeout 10 htop --tree명령을 찾았습니다 . watch그래서 내 시도는 두 가지의 조합을 사용하는 것이 었습니다

watch -n 10 `timeout 9 htop --tree`

그러나 그 출력은 htop표시되지 않습니다. 내가 뭘 잘못하고 있는지, 이 문제를 해결하는 방법을 알 수 있는 사람이 있나요? 아니면 내가 달성하려는 목표에 대한 대체 bash 솔루션을 제안할 수 있나요?

답변1

예, 이 watch유틸리티는 일부 명령의 작동 방식에 영향을 미칩니다. 그냥 루프를 사용하는 것이 더 좋습니다. 시청도 요청하신 것 같습니다.산출명령의 일부인 명령 htop은 실제로 원하는 것이 아닐 수도 있습니다(명령 대체인 백틱을 찾아보세요. 즉, 명령의 일부가 그 안에 있는 명령의 출력으로 대체된다는 의미입니다).

while true; do
    timeout 10 htop --tree
done

달성하려는 효과에 따라 업데이트 지연 자체를 조사할 수도 있습니다 htop. 여기서는 10초의 새로 고침 빈도를 사용하고 있습니다.

htop -d 100

(지연 시간은 10분의 1초 단위로 측정됩니다.)

관련 정보