Hi Thorsten, i've just detected something that may interest you. I wanted to start something after a background command finished, but wait(1) didn't work. Turned out that the reason was that i've used signals to temporarily stop that background process. The good news is that only ksh93 (?) and bash(1) get that „right“, i.e., the way i expect it.
mksh(1): ?0[steffen@sherwood]$ /bin/sleep 30 & [1] 43732 ?0[steffen@sherwood]$ wait %1 ^C ?130[steffen@sherwood]$ jobs [1] + Running /bin/sleep 30 ?1[steffen@sherwood]$ kill -STOP %1 [1] + Suspended (signal) /bin/sleep 30 ?0[steffen@sherwood]$ jobs [1] + Suspended (signal) /bin/sleep 30 ?0[steffen@sherwood]$ wait %1 ?0[steffen@sherwood]$ kill -CONT %1 ?0[steffen@sherwood]$ jobs [1] + Suspended (signal) /bin/sleep 30 ?0[steffen@sherwood]$ wait %1 ?0[steffen@sherwood]$ wait ?0[steffen@sherwood]$ jobs [1] + Suspended (signal) /bin/sleep 30 ?0[steffen@sherwood]$ jobs [1] + Done /bin/sleep 30 dash(1): * [steffen@sherwood]$ /bin/sleep 30 & * [steffen@sherwood]$ jobs [1] + Running /bin/sleep 30 * [steffen@sherwood]$ wait %1 ^C * [steffen@sherwood]$ jobs [1] + Running /bin/sleep 30 * [steffen@sherwood]$ kill -TSTP %1 [1] + Suspended /bin/sleep 30 * [steffen@sherwood]$ wait %1 * [steffen@sherwood]$ jobs [1] + Suspended /bin/sleep 30 * [steffen@sherwood]$ kill -CONT %1 * [steffen@sherwood]$ jobs [1] + Suspended /bin/sleep 30 * [steffen@sherwood]$ wait %1 * [steffen@sherwood]$ wait * [steffen@sherwood]$ jobs [1] + Suspended /bin/sleep 30 * [steffen@sherwood]$ [1] + Done /bin/sleep 30 * [steffen@sherwood]$ ^D NetBSD /bin/sh(1): * [steffen@nhead]$ /bin/sleep 30 & * [steffen@nhead]$ jobs [1] + Running /bin/sleep 30 * [steffen@nhead]$ kill -STOP %1 * [steffen@nhead]$ jobs [1] + Running /bin/sleep 30 * [steffen@nhead]$ wait %1 [1] + Suspended (signal) /bin/sleep 30 * [steffen@nhead]$ kill -CONT %1 * [steffen@nhead]$ jobs [1] + Suspended (signal) /bin/sleep 30 * [steffen@nhead]$ wait %1 * [steffen@nhead]$ wait * [steffen@nhead]$ jobs [1] + Suspended (signal) /bin/sleep 30 * [steffen@nhead]$ [1] Done /bin/sleep 30 * [steffen@nhead]$ bash(1): ?0[steffen@sherwood]$ /bin/sleep 30 & [1] 43752 ?0[steffen@sherwood]$ wait %1 ^C ?1[steffen@sherwood]$ kill -STOP %1 ?0[steffen@sherwood]$ jobs [1]+ Running /bin/sleep 30 & ?0[steffen@sherwood]$ wait %1 [1]+ Stopped /bin/sleep 30 ?145[steffen@sherwood]$ wait %1 bash: warning: wait_for_job: job 1 is stopped ?145[steffen@sherwood]$ kill -CONT %1 ?0[steffen@sherwood]$ jobs [1]+ Running /bin/sleep 30 & ?0[steffen@sherwood]$ wait %1 ^C ?1[steffen@sherwood]$ jobs [1]+ Running /bin/sleep 30 & ?0[steffen@sherwood]$ [1]+ Done /bin/sleep 30 Mac OS X /bin/ksh(1): ?0[steffen@sherwood]$ /bin/sleep 30 & [1] 43762 ?0[steffen@sherwood]$ jobs [1] + Running /bin/sleep 30 & ?0[steffen@sherwood]$ wait ^C?258[steffen@sherwood]$ jobs [1] + Running /bin/sleep 30 & ?0[steffen@sherwood]$ kill -STOP %1 ?0[steffen@sherwood]$ jobs [1] + Running /bin/sleep 30 & ?0[steffen@sherwood]$ wait %1 [1] + Stopped (SIGSTOP) /bin/sleep 30 & ?0[steffen@sherwood]$ kill -CONT %1 ?0[steffen@sherwood]$ jobs [1] + Running /bin/sleep 30 & ?0[steffen@sherwood]$ wait %1 ^C?258[steffen@sherwood]$ jobs ?0[steffen@sherwood]$ Ciao, --steffen
