title: how to avoid shell=True in subprocess
body: <p>I have subprocess command to check md5 checksum as </p>
  
  <pre><code>subprocess.check_output('md5 Downloads/test.txt', stderr=subprocess.STDOUT, shell=True)
  </code></pre>
  
  <p>It works fine.
  But I read try to avoid <code>shell=True</code>
  but when I run </p>
  
  <pre><code>subprocess.check_output('md5 Downloads/test.txt', stderr=subprocess.STDOUT, shell=False)
  </code></pre>
  
  <p>I get error <code>OSError: [Errno 2] No such file or directory</code></p>
  
  <p>Can I run above command or workaround with <code>shell=False</code> or it's ok to keep <code>shell=True</code>?</p>