I'm a bit confused by this statement at the Linuxtopia site:
subshells let the script do parallel processing, in effect executing multiple subtasks simultaneously.
Does this mean that subshells, run from a script, are always run in parallel to the original script? Experimentally, this does not appear to be the case, but I'd be grateful for expert confirmation one way or the other.
#! /usr/bin/bash # This script reliably prints: # hello # world # 0 # ...implying that the the subshell is not run in parallel with this script. (echo hello; echo world) echo $?
#! /usr/bin/bash # This script prints: # 0 # hello # world # ...implying that the the subshell is run in parallel with this script. (echo hello; echo world) & echo $?
Is the use of
& what the Linuxtopia site might have meant by "[letting] the script do parallel processing"?
Note: I'm familiar with the concept of suffixing commands with
& in bash...it runs said command as a background process. So my question is more about whether command(s) executed in a subshell are run as background/parallel process by default, or if addition of the
& here, as well, is what causes the background/parallel execution. The wording of the Linuxtopia article, to me, implied the former, which doesn't appear to match observation.