Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

    while wait && [[ $SECONDS -lt $1 ]]; do
      read -t $(($1 - SECONDS))
    done <><(:)
although if you're not too concerned about finishing early if a signal interrupts, probably

    { wait; read -t $1; } <><(:)
would be fine. You want the wait because otherwise bash won't reap the zombie from the process substitution until after the read times out.

Interestingly, it does reap on a blocked read without -t, so potentially the behaviour on -t would be considered a bug rather than as-designed.

There's also a loadable sleep builtin supplied with bash which calls into the internal fsleep() so should be reliable and without forking.





Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: