title: How to fix Cygwin error on angle brackets < > in a shell script?
body: <p>I'm trying to get a shell script running in Cygwin and in the cut down section I posted below it crashes out with an error that reads:</p>
  
  <p>new.sh: line 8: syntax error near unexpected token `newline'</p>
  
  <pre><code>#!/bin/sh
  set -eu
  
  usage(){
      echo "$(cat &lt;&lt;"EOF")"
        sh new.sh &lt;--repo REPO&gt;+
  
      --repo | -r &lt;REPO_URL&gt;
        url of a repository to analyze
        REQUIRES --repo OR --repo-file
  
      --save-credentials | -s
        save credentials (in plain text) after running
  
      --help | -h
        shows this message
  
      EOF
  }
  </code></pre>
  
  <p>There are no carriage returns causing this error message. It seems its as a result of the angle brackets <code>&lt;</code> and <code>&gt;</code>. After removing them, it later falls over on the <code>(</code> and <code>)</code> brackets.</p>
  
  <p>Is this a code issue or a Cygwin issue? Can somebody suggest a fix?</p>