Giả định của bạn:
fortune | tee >(?stdout?) | pbcopy
sẽ không hoạt động vì fortune
đầu ra sẽ được ghi thành tiêu chuẩn hai lần, vì vậy bạn sẽ tăng gấp đôi đầu ra pbcopy
.
Trong OSX (và các hệ thống hỗ trợ khác /dev/std{out,err,in}
), bạn có thể kiểm tra nó:
$ echo 1 | tee /dev/stdout | sed 's/1/2/'
2
2
đầu ra 2
hai lần thay vì 1
và 2
.
Bạn phải sử dụng các mô tả tệp khác, ví dụ lỗi tiêu chuẩn thông qua /dev/stderr
:
$ echo 1 | tee /dev/stderr | sed 's/1/2/'
1
2
hoặc sử dụng tty
để có được thiết bị đầu cuối giả được kết nối:
$ echo 1 | tee "$(tty)" | sed 's/1/2/'
1
2
Với zsh
và multios
tùy chọn được đặt, bạn hoàn toàn không cần tee
:
$ echo 1 >/dev/stderr | sed 's/1/2/'
1
2
fortune | tee $(tty) | pbcopy
thì sao?