title: Why avoid subshells?
body: <p>I've seen a lot of answers and comments on Stack Overflow
  that mention doing something to avoid a subshell. In some
  cases, a functional reason for this is given
  (most often, the potential need to read a variable
  outside the subshell that was assigned inside it), but in
  other cases, the avoidance seems to be viewed as an end
  in itself. For example</p>
  
  <ul>
  <li><p><a href="https://stackoverflow.com/q/19020255/#19022363">union of two columns of a tsv file</a><br>
  suggesting <code>{ ... ; } | ...</code> rather than
  <code>( ... ) | ...</code>, so there's a subshell either way.</p></li>
  <li><p><a href="https://stackoverflow.com/q/20059064/#20063013">unhide hidden files in unix with sed and mv commands</a></p></li>
  <li><p><a href="https://stackoverflow.com/q/7945656/#comment29349903_7945712">Linux bash script to copy files</a><br>
  explicitly stating,
  "the goal is just to avoid a subshell"</p></li>
  </ul>
  
  <p>Why is this? Is it for style/elegance/beauty? For
  performance (avoiding a fork)? For preventing likely
  bugs? Something else?</p>