'tail -f' 一段特定的时间

'tail -f' 一段特定的时间

我需要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行确保当脚本或父 shell 终止时(我们到达脚本末尾 (EXIT)、Ctrl-C (INT)、通过 发送 SIGTERM kill、注销 shell (HUP) 等),则脚本或父 shelltail被终止。

相关内容