title: -e disappeared in environment variable, how to avoid this?
body: <pre><code>#!/bin/bash
  
  OPTS='-e EXTERNAL_PORT=443'
  
  echo $OPTS
  
  cat 1.txt
  if [ $? -ne 0 ]; then
      echo $OPTS
      exit 1
  fi
  </code></pre>
  
  <p>in this case, I got output:</p>
  
  <pre><code>EXTERNAL_PORT=443
  cat: 1.txt: No such file or directory
  EXTERNAL_PORT=443
  </code></pre>
  
  <p>if I change OPTS to</p>
  
  <pre><code>OPTS='a -e EXTERNAL_PORT=443'
  </code></pre>
  
  <p>now it worked as normal</p>
  
  <pre><code>a -e EXTERNAL_PORT=443
  cat: 1.txt: No such file or directory
  a -e EXTERNAL_PORT=443
  </code></pre>
  
  <p>How can I avoid this? And this is a simplified demo, in my real cases, I have an environment variable OPTS starts with -e.</p>
  
  <p>I echo it, it is correct, but after line <code>if [ $? -ne 0 ]; then</code>, the "-e" disappeared, this causes bug for my scripts.</p>
  
  <p>Thanks.</p>