Actual meaning of 'shell=True' in subprocess
<p>I am calling different processes with the <code>subprocess</code> module. However, I have a question.</p>

<p>In the following codes:</p>

<pre><code>callProcess = subprocess.Popen(['ls', '-l'], shell=True)
</code></pre>

<p>and </p>

<pre><code>callProcess = subprocess.Popen(['ls', '-l']) # without shell
</code></pre>

<p>Both work. After reading the docs, I came to know that <code>shell=True</code> means executing the code through the shell. So that means in absence, the process is directly started. </p>

<p>So what should I prefer for my case - I need to run a process and get its output. What benefit do I have from calling it from within the shell or outside of it.</p>
