Run When Done

May 20th, 2014
tech
If you want to run a command when another finishes, the shell can do that for you:
    $ long_running_process.sh && echo "runs on success"
    $ long_running_process.sh || echo "runs on failure"
    $ long_running_process.sh ;  echo "runs either way"
One common thing to do this with is email, so you get a notification:
    $ long_running_process.sh ; echo done | mail -s done jeff@jefftk.com
(This does require your server to be set up for sending mail in a way that won't get rejected, which is actually kind of tricky.)

For years, though, I've gotten annoyed at myself when after a process has been running for a while I wish I had set something else to run after it. Should I kill the process and start it over with && something_else.sh, or should I let it finish and then run something_else.sh on my own?

It turns out you don't have to choose! Shell job control can do this for you. Just background the first command, and then when you foreground it add the next command:

    $ sleep 10
    ^Z
    [1]+  Stopped                 sleep 10
    $ fg ; echo "finished, exit status is $?"
    sleep 10
(a few seconds of waiting)
    finished, exit status is 0
You can see fg substitutes for the original command, running as long as it would, and passing along the exit status so && and || still work.

Comment via: google plus, facebook, substack

Recent posts on blogs I like:

Ozy at LessOnline!

I will once again be a guest at LessOnline, alongside many other writers whom you no doubt like less than you like me: Scott Alexander, dynomight, Georgia Ray, David Friedman, Nicholas Decker, Jacob Falkovich, Kelsey Piper, Alicorn, Aella, etc.

via Thing of Things March 23, 2026

Daycares and the Brown School

As someone in Somerville I notice that there are quite high prices regarding childcare. The average family in Somerville pays $1,100 to $3,500 for daycare per month, and I want to make the costs more affordable. I have also noticed that housing is quite …

via Lily Wise's Blog Posts March 22, 2026

2025-26 New Year review

This is an annual post reviewing the last year and setting intentions for next year. I look over different life areas (work, health, parenting, effectiveness, etc) and analyze my life tracking data. Highlights include a minimal group house, the usefulness…

via Victoria Krakovna January 19, 2026

more     (via openring)