Não suporta a substituição do processo <(…)?
Em uma máquina Centos 6, isso funciona:
bash -c 'if grep -qP --line-buffered ".+" <(tail -n 1000 -F catalina.out) ; then echo "yes"; fi'
e isso não acontece:
sh -c 'if grep -qP --line-buffered ".+" <(tail -n 1000 -F catalina.out) ; then echo "yes"; fi'
Eu recebo:
sh: -c: line 0: syntax error near unexpected token `('
sh: -c: line 0: `if grep -qP --line-buffered ".+" <(tail -n 1000 -F catalina.out) ; then echo "yes"; fi'
Nevermind o grep e cauda. O problema é com a coisa de substituição do processo:<(...)
Alguém pode me dizer o que sh faz diferente aqui?
[EDITAR]
Obrigado pelas respostas!
O problema surgiu durante o usocapistrano para implantações. O padrão é usarsh mas eu mudei isso parabater agora. A razão pela qual eu não consegui fazer a tubulação normal é que ao usartail -F | grep -q --line-buffered
o grep não sairá imediatamente após uma partida. Tem que haver mais uma edição no arquivo comoecho "" >> catalina.out
e isso não era aceitável na minha situação.