title: evaluating expression with bash
body: <p>There is something i do not understand with strings in bash:</p>
  
  <p>Look at this script:</p>
  
  <pre><code>#!/bin/bash
  tmp="ls"
  "$tmp"
  </code></pre>
  
  <p>This script executes ls command and display result in the console.</p>
  
  <p>Now look at this script:</p>
  
  <pre><code>#!/bin/bash
  tmp="ls &gt; out.txt"
  "$tmp"
  </code></pre>
  
  <p>This second script does not execute ls and displays this error:</p>
  
  <pre><code> line 3: ls &gt; out.txt: command not found
  </code></pre>
  
  <p>I just want to understand. I do not want to understand how to run ls command. I want to understand why the first script works and not the second.</p>
  
  <p>Thanks</p>