title: Different outputs using ./ and sh
body: <p>Consider this example snippet:</p>
  <pre><code>copy=true
  model=&quot;model&quot;
  if [ ${copy} = true ] ; then
      model+=&quot;Copy&quot;
  fi
  echo ${model}
  </code></pre>
  <p>I am on the following platform:</p>
  <pre><code>Distributor ID: Ubuntu
  Description:    Ubuntu 18.04.5 LTS
  Release:    18.04
  Codename:   bionic
  </code></pre>
  <p>Output using <code>sh test.sh</code>:</p>
  <pre><code>test2.sh: 4: test2.sh: model+=Copy: not found ---&gt; error
  model
  </code></pre>
  <p>Output using <code>./test.sh</code>:</p>
  <pre><code>modelCopy
  </code></pre>
  <p>I am aware of some of the differences between running the bash script using <code>sh</code> and <code>./</code> after reading links[<a href="https://stackoverflow.com/questions/46996612/echo-output-different-answer-by-sh-and-bash">1</a>, <a href="https://stackoverflow.com/questions/30907988/what-is-the-difference-between-example-sh-and-sh-example-sh">2</a>]. Still, I would like to know what's wrong with the use of <code>+=</code> operator when I use <code>sh</code>, why it doesn't work. I am some use-cases where I need to run the file using <code>sh</code> only, how can I rectify that <code>not found</code> error?</p>