title: Why does this while stop after first iteration?
body: <p>If I do the following</p>
  
  <pre><code>tr -cd 'a-z' &lt; /dev/urandom | fold -w10 | head -n40 &gt; pw
  for f in $(seq -w 40); do echo linux$f.example.com;done &gt; hosts
  
  while read -r x &amp;&amp; read -r y &lt;&amp;3; do ssh $x -l root echo $y;done &lt;hosts 3&lt;pw 
  </code></pre>
  
  <p>then the loop stops after the first iteration, but if I insert an <code>echo</code> (which is not what I want) then it loops through all 40.</p>
  
  <pre><code>while read -r x &amp;&amp; read -r y &lt;&amp;3; do echo ssh $x -l root echo $y;done &lt;hosts 3&lt;pw 
  </code></pre>
  
  <p><strong>Question</strong></p>
  
  <p>How can I make it execute all 40 iterations, without making a temp file first?</p>