한 프로세스에서 다른 프로세스의 stdin으로 콘솔뿐만 아니라 stdout을 보내려고합니다. 예를 들어 stdout을 stdout + stderr로 전송합니다.
예를 들어 git edit
다음과 같은 별칭이 있습니다.
git status --short | cut -b4- | xargs gvim --remote
파일 이름 목록을 화면뿐만 아니라에 보내려고합니다 xargs
.
그래서 tee
이것을 할 비슷한 유틸리티가 있습니까? 그래서 나는 다음과 같은 것을 할 수 있습니다 :
git status --short | \
cut -b4- | almost-but-not-quite-entirely-unlike-tee | \
xargs gvim --remote
답변
tee
를 사용하여 현재 콘솔에 복제 할 수 있습니다 tee /dev/tty
git status --short | cut -b4- | tee /dev/tty | xargs gvim --remote
이것은 틀렸다, 의견을 읽으십시오./dev/stdout
또는 /dev/stderr
명령을 스크립트 내에있는 경우 또는를 사용할 수 있지만 리디렉션 될 수 있습니다. 참고 /dev/tty
항상 콘솔 될 것입니다 (그리고 비 대화식 쉘에 존재하지 않을 수 있습니다).
답변
보다 일반적인 해결책 /dev/tty
:
start cmd:> echo foo | tee /dev/stderr
foo
foo
답변
tee 명령을 사용할 수 있습니다 . 예를 들어 STDERR 파일과 함께 제공하면됩니다.
tee /dev/stderr
tee /proc/self/fd/2
이 경우 귀하의 별칭은 다음과 같습니다.
git status --short | \
cut -b4- | tee /dev/stderr | \
xargs gvim --remote