ExitCodeFrom extracts the shell exit status from a shell execution error.
It returns the exit code when err wraps an interp.ExitStatus, or 0 for
any other error.
Run parses and executes the shell program described by prog, writing
output to the provided streams.
It returns an [error] if the source cannot be parsed or if the program
exits with a non-zero status.