로그 파일에 대해 실행 해야 tail -f
하지만 특정 시간(예: 20초) 동안만 실행한 다음 종료해야 합니다. 이를 달성하는 우아한 방법은 무엇입니까?
답변1
GNU 시간 초과 사용:
timeout 20 tail -f /path/to/file
답변2
완벽을 기하기 위해 그렇지 않은 경우 timeout
다음을 수행할 수 있습니다.
#!/bin/sh
tail -f /var/log/syslog &
me=$!
trap "kill $me" INT TERM HUP QUIT EXIT
sleep 20
이 trap
줄은 스크립트 또는 상위 셸이 종료될 때(스크립트의 끝에 도달(EXIT), Ctrl-C(INT), SIGTERM 전송 kill
, 셸 로그아웃(HUP) 등)), 스크립트 또는 상위 쉘이 tail
종료되었습니다.