Hi Rich. Shell scripts cannot catch signals while a sleep command is running in the foreground. For example, if a shell script is executing this command:
sleep 60
and I send the script SIGUSR1 (let's pretend SIGUSR1 causes the script to do something special), the script will not respond to the signal until the 60 seconds of sleep are over.
On the other hand, this useful construct:
sleep 60 & wait $!
has the same effect of causing the script to pause for 60 seconds, with the big difference that the script can respond to signals during those 60 seconds.