title: Unable to interpret control operator in linux
body: <p>I have the following C program saved in a file named 1.c</p>
  
  <pre><code>#include&lt;stdio.h&gt; 
  void main() 
  { 
  printf("Hello World");
  }
  </code></pre>
  
  <p>After compiling it, I try to execute it using </p>
  
  <pre><code>./a.out || echo Hi
  </code></pre>
  
  <p>I expect to see the following output</p>
  
  <pre><code>Hello World
  </code></pre>
  
  <p>But the output that I get is</p>
  
  <pre><code>Hello WorldHi
  </code></pre>
  
  <p>The above output seems to be wrong since <code>echo hi</code> should execute only if <code>./a.out</code> does not get executed successfully. Where am I wrong in interpreting the output?</p>