Con tiempo de espera de GNU:
timeout 20 tail -f /path/to/file
Para completar, sin timeout
, puedes hacer esto:
#!/bin/sh
tail -f /var/log/syslog &
me=$!
trap "kill $me" INT TERM HUP QUIT EXIT
sleep 20
El trap
línea asegura que cuando el script o el shell principal finaliza (llegamos al final del script (EXIT), Ctrl-C (INT), enviando un SIGTERM a través de kill
, cerrar sesión en el shell (HUP), etc.) y luego el tail
es asesinado.