Czy nie obsługuje podstawiania procesów <(…)?
Na maszynie Centos 6 działa to:
bash -c 'if grep -qP --line-buffered ".+" <(tail -n 1000 -F catalina.out) ; then echo "yes"; fi'
a to nie:
sh -c 'if grep -qP --line-buffered ".+" <(tail -n 1000 -F catalina.out) ; then echo "yes"; fi'
Dostaję:
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'
Nigdy nie myśl o grepie i ogonie. Problem polega na zastąpieniu procesu rzeczą:<(...)
Czy ktoś może mi powiedzieć, co tu robi inaczej?
[EDYTOWAĆ]
Dziękuję za odpowiedzi!
Problem powstał podczas używaniacapistrano dla wdrożeń. Domyślnie używa sięsh ale zmieniłem to nagrzmotnąć teraz. Powodem, dla którego nie mogłem wykonać normalnego orurowania, jest to, że używamtail -F | grep -q --line-buffered
, grep nie wyjdzie natychmiast po meczu. Musi istnieć jeszcze jedna edycja plikuecho "" >> catalina.out
w mojej sytuacji było to nie do przyjęcia.