title: [: missing `]' in bash script
body: <p>So I'm writing a bash shell script, and my first few lines looks like this:</p>
  
  <pre><code>if ! [ $# -eq 0 || $# -eq 1 ]; then
      echo -e "Usage: myScriptName [\e[3mdir\e[0m] [\e[3m-f file\e[0m]"
      exit 1
  fi
  </code></pre>
  
  <p>But when I run it, it says "[: missing `]'". I don't see a missing ], and nothing except the ; is touching the ], so what am I missing?</p>