Su suposición:
fortune | tee >(?stdout?) | pbcopy
no funcionará porque la fortune
salida se escribirá en el estándar dos veces, por lo que duplicará la salida en pbcopy
.
En OSX (y otros sistemas de soporte /dev/std{out,err,in}
), puede verificarlo:
$ echo 1 | tee /dev/stdout | sed 's/1/2/'
2
2
salida 2
dos veces en lugar de 1
y 2
.
Debe usar otros descriptores de archivo, ejemplo error estándar a través de /dev/stderr
:
$ echo 1 | tee /dev/stderr | sed 's/1/2/'
1
2
o use tty
para obtener el pseudo terminal conectado:
$ echo 1 | tee "$(tty)" | sed 's/1/2/'
1
2
Con zsh
y multios
conjunto de opciones, que no es necesario tee
en absoluto:
$ echo 1 >/dev/stderr | sed 's/1/2/'
1
2
fortune | tee $(tty) | pbcopy
?