title: What is the double dash in this bash script excerpt doing
body: <p>I'm looking at an excerpt of bash and I'm trying to understand what exactly is happening here, particularly in the <code>COMPREPLY</code> assignment:</p>
  
  <pre><code> case "$cur" in
      -*)
      COMPREPLY=( $( compgen -W '-a -d -f -l -t -h --aoption --debug \
                                 --file --log --test --help --' -- $cur ) );;
  #   Generate the completion matches and load them into $COMPREPLY array.
  #   xx) May add more cases here.
  #   yy)
  #   zz)
    esac
  </code></pre>
  
  <p>I understand we're assigning a value to <code>COMPREPLY</code> here based on the output of <code>compgen</code>, but what exactly is <code>--</code> doing in this assignment? Also, why the double semi-colon?</p>