¿No soporta la sustitución del proceso <(...)?
En una máquina Centos 6, esto funciona:
bash -c 'if grep -qP --line-buffered ".+" <(tail -n 1000 -F catalina.out) ; then echo "yes"; fi'
y esto no
sh -c 'if grep -qP --line-buffered ".+" <(tail -n 1000 -F catalina.out) ; then echo "yes"; fi'
Yo obtengo:
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'
No importa el grep y la cola. El problema es con el proceso de sustitución de cosas:<(...)
¿Alguien puede decirme qué es lo que hace diferente aquí?
[EDITAR]
Gracias por las respuestas!
El problema surgió durante el usocapistrano para despliegues. Por defecto usash pero cambié eso agolpetazo ahora. La razón por la que no pude hacer la tubería normal es que al usartail -F | grep -q --line-buffered
, grep no saldrá inmediatamente después de un partido. Tiene que haber una edición más en el archivo comoecho "" >> catalina.out
y esto no era aceptable en mi situación.