Con timeout GNU:
timeout 20 tail -f /path/to/file
Per completezza, senza timeout
, puoi farlo:
#!/bin/sh
tail -f /var/log/syslog &
me=$!
trap "kill $me" INT TERM HUP QUIT EXIT
sleep 20
Il trap
assicura che quando lo script o la shell genitore viene terminato (raggiungiamo la fine dello script (EXIT), Ctrl-C (INT), inviando un SIGTERM tramite kill
, disconnettendosi dalla shell (HUP), ecc.) quindi tail
viene ucciso.