title: Syntax error in shell script with process substitution
body: <p>I have this shell script which I use to back up my system. There is a line:</p>
  
  <pre><code>tar -Pzcpf /backups/backup.tar.gz --directory=/ --exclude=proc --exclude=sys --exclude=dev/pts --exclude=backups --exclude=var/log / 2&gt; &gt;(grep -v 'socket ignored' &gt;&amp;2)
  </code></pre>
  
  <p>As you can see, I have been trying to filter out the annoying, useless "socket ignored" error by tar, using <a href="http://wundsam.net/2011/03/27/filtering-stderr-or-how-to-get-rid-of-tars-socket-ignored-message/" rel="noreferrer">this blog post</a>.</p>
  
  <p>What I get from shell upon execution is:</p>
  
  <blockquote>
    <p>/bin/sysback: line 45: syntax error near unexpected token <code>&gt;'
    /bin/sysback: line 45:</code>tar -Pzcpf /backups/backup --directory=/
    --exclude=proc --exclude=sys --exclude=dev/pts --exclude=backups --exclude=var/log / 2> >(grep -v 'socket ignored' >&amp;2)'</p>
  </blockquote>