답변:
당신의 가정 :
fortune | tee >(?stdout?) | pbcopy
fortune
출력이 표준 출력으로 두 번 작성 되므로 출력이 두 배가 되므로 작동하지 않습니다 pbcopy
.
OSX (및 기타 시스템 지원 /dev/std{out,err,in}
)에서는 다음을 확인할 수 있습니다.
$ echo 1 | tee /dev/stdout | sed 's/1/2/'
2
2
및 2
대신 두 번 출력합니다 .1
2
다음과 같은 표준 오류와 같은 다른 파일 설명자를 사용해야합니다 /dev/stderr
.
$ echo 1 | tee /dev/stderr | sed 's/1/2/'
1
2
또는 tty
연결된 의사 터미널을 얻는 데 사용 하십시오.
$ echo 1 | tee "$(tty)" | sed 's/1/2/'
1
2
로 zsh
와 multios
옵션 설정, 당신은 필요가 없습니다 tee
전혀 :
$ echo 1 >/dev/stderr | sed 's/1/2/'
1
2
tee $(tty)
또는, 알다시피tee /dev/tty
tee
항상 표준 출력에 씁니다. 표준 출력이 이미 진행중인 터미널 외에 명령으로 데이터를 보내려면 해당 명령으로 프로세스 대체를 사용하십시오. (로 시작 >
하더라도 프로세스 대체는 표준 출력을 재지 정하지 않으며 tee
명령은이를 매개 변수로 간주합니다.)
fortune | tee >(pbcopy)
fortune | tee $(tty) | pbcopy
어떻습니까?