trap "echo got signal" USR1 | |
for try in 1 2 3 4 5; do | |
kill -USR1 $$ | |
sleep 0.2 | |
echo "sent $try signal" | |
done & | |
sleep 2 & | |
sleeping=true | |
while $sleeping; do | |
trap | |
if wait %%; then | |
echo "sleep completed" | |
sleeping=false | |
elif [ $? == 127 ]; then | |
echo "BUG: no processes to wait for?!" | |
sleeping=false | |
else | |
echo "wait interrupted" | |
fi | |
done |