title: What is the difference between an inline variable assignment and a regular one in Bash?
body: <p>What is the difference between:</p>
  
  <pre><code>prompt$   TSAN_OPTIONS="suppressions=/somewhere/file" ./myprogram
  </code></pre>
  
  <p>and</p>
  
  <pre><code>prompt$   TSAN_OPTIONS="suppressions=/somewhere/file"
  prompt$   ./myprogram
  </code></pre>
  
  <p>The <a href="https://code.google.com/p/thread-sanitizer/wiki/Suppressions" rel="noreferrer">thread-sanitizer</a> library gives the first case as how to get their library (used within myprogram) to read the file given in options.  I read it, and assumed it was supposed to be two separate lines, so ran it as the second case.</p>
  
  <p>The library doesn't use the file in the second case, where the environment variable and the program execution are on separate lines.</p>
  
  <p>What's the difference?</p>
  
  <p>Bonus question: How does the first case even run without error?  Shouldn't there have to be a ; or &amp;&amp; between them?   The answer to this question likely answers my first...</p>