Unterstützt sh keine Prozessersetzung <(…)?
Auf einem Centos 6-Computer funktioniert Folgendes:
bash -c 'if grep -qP --line-buffered ".+" <(tail -n 1000 -F catalina.out) ; then echo "yes"; fi'
und das tut nicht:
sh -c 'if grep -qP --line-buffered ".+" <(tail -n 1000 -F catalina.out) ; then echo "yes"; fi'
Ich bekomme:
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'
Vergiss Grep und Tail. Das Problem ist mit der Prozessersetzungssache:<(...)
Kann mir jemand sagen, was sie hier anders macht?
[BEARBEITEN]
Danke für die Antworten!
Das Problem trat bei der Verwendung aufcapistrano für Bereitstellungen. Standardmäßig wird verwendetSch aber ich habe das in geändertBash jetzt. Der Grund, warum ich die normalen Rohrleitungen nicht ausführen konnte, ist die Verwendungtail -F | grep -q --line-buffered
grep wird nicht sofort nach einem Spiel beendet. Die Datei muss noch einmal bearbeitet werdenecho "" >> catalina.out
und das war in meiner situation nicht akzeptabel.