{ cmd 2>&1 >&3 3>&- | logger 3>&-; } 3>&1
A idéia é que o stdout outer é duplicado no descritor de arquivo (fd) 3, e restaurado por cmd
no stdout, enquanto o próprio descritor de arquivo 2 (stderr) do cmd vai para o pipe logger.
O 3>&-
é para fechar esse fd para os comandos cmd e logger depois de ter cumprido seu propósito, já que esses comandos não precisarão / usarão.