Не поддерживает ли подстановка процесса <(…)?
На машине Centos 6 это работает:
bash -c 'if grep -qP --line-buffered ".+" <(tail -n 1000 -F catalina.out) ; then echo "yes"; fi'
и это не так:
sh -c 'if grep -qP --line-buffered ".+" <(tail -n 1000 -F catalina.out) ; then echo "yes"; fi'
Я получил:
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'
Фигу и хвост. Проблема с процессом подмены вещей:<(...)
Может кто-нибудь сказать мне, что здесь делает по-другому?
[РЕДАКТИРОВАТЬ]
Спасибо за ответы!
Проблема возникла при использованииCapistrano для развертываний. По умолчанию используетсяш но я изменил это наудар в настоящее время. Причина, по которой я не смог сделать нормальный трубопровод, заключается в том, что при использованииtail -F | grep -q --line-buffered
grep не выйдет сразу после матча. Там должно быть еще одно редактирование файла, какecho "" >> catalina.out
и это не было приемлемо в моей ситуации.