title: Difference in `< <(cat file)` and `<file` feeding loop
body: <p>I saw the following example for reading a file in a bash script:</p>
  
  <pre><code>while read IP; do
    ${IPTABLES} -I INPUT -s "${IP}" -j DROP
  done &lt; &lt;(cat "${BLACKLIST}")
  </code></pre>
  
  <p>but I'd have thought to do the following instead:</p>
  
  <pre><code>while read IP; do
    ${IPTABLES} -I INPUT -s "${IP}" -j DROP
  done &lt;${BLACKLIST}
  </code></pre>
  
  <p>Why would one use <code>&lt; &lt;(cat</code> instead of simply <code>&lt;</code>? What is the right-est way to do this?</p>
  
  <p>Second comment on <a href="https://stackoverflow.com/q/26471631/2043621">this question</a> gives good reason why using <code>cat</code> is bad but RoseHosting.com seems pretty reputable and they suggest the code above that uses <code>cat</code>. I'm thinking the <code>&lt; &lt;(cat file)</code> looks like a weird way to cover up a bad practice. <a href="https://stackoverflow.com/questions/2552402/cat-file-vs-file">(here's another place it was pointed out <code>cat</code> piping to a loop is bad)</a></p>