Doesn't sh support process substitution <(…)?

前端 未结 3 1999
北荒
北荒 2020-12-07 02:55

On a Centos 6 machine, this works:

bash -c \'if grep -qP --line-buffered \".+\" <(tail -n 1000 -F catalina.out) ; then echo \"yes\"; fi\'
<
3条回答
  •  [愿得一人]
    2020-12-07 03:24

    You should note that process substitution (<(...)) isn't specified by POSIX. So if you were running bash in POSIX mode by invoking it with sh or saying:

    set -o posix
    

    then you'd observe errors!

    From the bash manual:

    Starting Bash with the --posix command-line option or executing ‘set -o posix’ while Bash is running will cause Bash to conform more closely to the POSIX standard by changing the behavior to match that specified by POSIX in areas where the Bash default differs.

    ...

    Process substitution is not available.

提交回复
热议问题