출력을 기다린 후 명령을 실행하십시오.

출력을 기다린 후 명령을 실행하십시오.

일부 출력을 제공하는 bash 스크립트가 있습니다. 그러나 때로는 출력에 오랜 시간이 걸릴 수도 있습니다. 5초 동안 출력 명령만 기다리는 것이 어떻게 가능합니까? 5초 이내에 출력이 없으면 bash-script-2를 실행합니다. 출력이 있으면 bash-script-1을 실행합니다.

웹에서 검색해 보았는데 관련 내용을 찾을 수 없었습니다.

답변1

출력을 로그 파일로 보낸 다음 tail -f로그 파일을 제한 시간으로 보내고 무엇이든 일치시킵니다.

some-long-running-command > log-file &
if timeout 5 tail -f log-file | grep .
then
  # grep found something before tail was killed
  bash-script-1
else
  # tail was killed before grep found anything
  bash-script-2
fi

이것timeout주문하다GNU coreutils에서.

관련 정보