Sua suposição:
fortune | tee >(?stdout?) | pbcopy
não funcionará porque a saída fortune
será gravada como padrão duas vezes, então você duplicará a saída para pbcopy
.
No OSX (e outros sistemas suportam /dev/std{out,err,in}
), você pode verificar:
$ echo 1 | tee /dev/stdout | sed 's/1/2/'
2
2
saída 2
duas vezes em vez de 1
e 2
.
Você deve usar outros descritores de arquivo, por exemplo, erro padrão até /dev/stderr
:
$ echo 1 | tee /dev/stderr | sed 's/1/2/'
1
2
ou use tty
para obter o pseudo-terminal conectado:
$ echo 1 | tee "$(tty)" | sed 's/1/2/'
1
2
Com a opção zsh
e multios
definida, você não precisa de tee
:
$ echo 1 >/dev/stderr | sed 's/1/2/'
1
2