1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
# make sure that jobs -p, %+, and $! all agree set -m sleep 60 & FN=/tmp/jobs-pid.$$ pid1=$! jobs -p %+ > $FN pid2=$(< $FN) rm $FN if [ $pid1 -ne $pid2 ]; then echo 'oops - $! and jobs -p %+ disagree!' fi exec 2>/dev/null kill -9 $pid1