Test (to be run from an interactive shell): vim & vim & echo no subshell jobs echo subshell j="$(jobs)" echo "$j" Output: [1] 10523 [2] 10524 no subshell [1] - running vim [2] + running vim subshell [1] - running vim Expected output: [1] 10523 [2] 10524 no subshell [1] - running vim [2] + running vim subshell [1] - running vim [2] + running vim # <- this is missing when jobs is run from a subshell