title: Cygwin bash refuses to exit
body: <p>I'm running the following script where the glob in the for loop expands to a very large set of files.  For some reason the exit due to key press refuses to take... the script prints "detected keypress, exiting" but just keeps going.</p>
  
  <p>I suspect there are subshells being spawned somehow which are sucking up the exit calls but I'm stumped as to how to fix it.  The script simply doesn't exit.</p>
  
  <pre><code>#!/bin/sh -e
  bindir=`dirname $0`
  
  shopt -s nullglob
  
  dir="$1"
  
  diecygwin=
  for complete in "${dir}"/*#complete; do
      if [ ! -z "$diecygwin" ]; then
          exit "$diecygwin"
          continue
      fi
      seq=${complete//#complete/}
      echo -n "${seq} ... "
      rc=0
      $bindir/other.sh -d "$seq" || rc=$?
      if [ $rc -eq 0 ]; then
          echo ok
          read -t 0.5 -n 1 -s holder &amp;&amp; key="$holder"
          if [ ! -z "$key" ]; then
              echo detected keypress, exiting
              exit 0
              diecygwin=0
          fi
      elif [ $rc -ne 100 ]; then
          echo fatal error $rc
          exit 1
          diecygwin=1
      fi
  done
  </code></pre>