Na Centos 6 maszynie, to działa:Czy sh zastępuje proces zastępowania <(...)?
bash -c 'if grep -qP --line-buffered ".+" <(tail -n 1000 -F catalina.out) ; then echo "yes"; fi'
i to nie:
sh -c 'if grep -qP --line-buffered ".+" <(tail -n 1000 -F catalina.out) ; then echo "yes"; fi'
uzyskać:
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 grep i ogon. Problem polega na tym, że podstawienie procesu jest możliwe: <(...)
Czy ktoś może mi powiedzieć, co sh inaczej tu robi?
[EDIT]
Dzięki za odpowiedzi!
Problem powstał podczas używania capistrano dla wdrożeń. Domyślnie jest to sh, ale zmieniłem to teraz na bash teraz. Powodem, dla którego nie mogłem wykonać normalnej instalacji rurowej, jest to, że gre2 nie wyjdzie natychmiast po zakończeniu meczu, gdy użyjesz tail -F | grep -q --line-buffered
. W pliku musi być jeszcze jedna edycja, taka jak echo "" >> catalina.out
, co nie było do przyjęcia w mojej sytuacji.
'jeśli ogon ... | grep ...; następnie ... fi' działa dla mnie w desce rozdzielczej i bashie w trybie POSIX. – choroba
@choroba: Tak. Ale czy działa w 'sh' lub' ksh'? –
Działa w ksh. 'sh' na moim systemie to myślnik lub bash w trybie posix. – choroba