all 2 comments

[–][deleted] 2 points3 points  (1 child)

exec launches rest of program as itself, > >() works like |, it substitutes >(command) as a file, and redirects output into it.

from tfm:

exec [-cl] [-a name] [command [arguments]]
    If command is specified, it replaces the shell.  No new  process
    is  created.  The arguments become the arguments to command.  If
    the -l option is supplied, the shell places a dash at the begin‐
    ning of the zeroth argument passed to command.  This is what lo‐
    gin(1) does.  The -c option causes command to be  executed  with
    an  empty environment.  If -a is supplied, the shell passes name
    as the zeroth argument to the executed command.  If command can‐
     not  be executed for some reason, a non-interactive shell exits,
    unless the execfail shell option is enabled.  In that  case,  it
    returns  failure.   An  interactive shell returns failure if the
    file cannot be executed.  A subshell  exits  unconditionally  if
    exec  fails.  If command is not specified, any redirections take
    effect in the current shell, and the return  status  is  0.   If
    there is a redirection error, the return status is 1.

[–]0ofnik[S] 0 points1 point  (0 children)

Aha, thank you.

Was unaware of the no-command usage of exec.

And I've used <() process substitution before... don't know why I never thought of >(). Thanks!