저는 일정 시간(이 질문에서는 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초 단위로 측정됩니다.)