Asumsi Anda:
fortune | tee >(?stdout?) | pbcopy
tidak akan berfungsi karena fortune
output akan ditulis ke standar dua kali, jadi Anda akan menggandakan output ke pbcopy
.
Di OSX (dan dukungan sistem lainnya /dev/std{out,err,in}
), Anda dapat memeriksanya:
$ echo 1 | tee /dev/stdout | sed 's/1/2/'
2
2
output 2
dua kali alih-alih 1
dan 2
.
Anda harus menggunakan deskriptor file lain, contoh kesalahan standar melalui /dev/stderr
:
$ echo 1 | tee /dev/stderr | sed 's/1/2/'
1
2
atau gunakan tty
untuk mendapatkan terminal semu yang terhubung:
$ echo 1 | tee "$(tty)" | sed 's/1/2/'
1
2
Dengan zsh
dan multios
opsi diset, Anda tidak perlu tee
sama sekali:
$ echo 1 >/dev/stderr | sed 's/1/2/'
1
2
fortune | tee $(tty) | pbcopy
?