Is there an elegant way, in the shell, to say “run this program until this other program is finished”?

I know I could run a thing, get a PID and then append a command with “&& kill pid” or something but that feels clunky.

@mhoye uh I’m away from my desk and this is probably wrong but can you run a sub shell like

{ myexpensivecommand; kill $PPID } &