한 프로세스의 표준 출력을 다른 프로세스의 표준 입력과 콘솔로 보내고 싶습니다. 예를 들어, 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
답변1
tee
다음을 사용하여 현재 콘솔에 복사할 수 있습니다.tee /dev/tty
git status --short | cut -b4- | tee /dev/tty | xargs gvim --remote
잘못된 내용입니다. 댓글을 읽어보시기 바랍니다./dev/stdout
또는 또는 을 사용할 수 있지만 /dev/stderr
명령이 스크립트 내에 있으면 리디렉션될 수 있습니다. 이는 /dev/tty
항상 콘솔이라는 점에 유의하십시오(비대화형 쉘에는 없을 수도 있음).
답변2
다음보다 더 일반적인 솔루션 /dev/tty
:
start cmd:> echo foo | tee /dev/stderr
foo
foo
답변3
당신은 그것을 사용할 수 있습니다티명령을 실행하려면 STDERR 파일을 입력하세요. 예를 들면 다음과 같습니다.
tee /dev/stderr
tee /proc/self/fd/2
따라서 이 경우 별칭은 다음과 같을 수 있습니다.
git status --short | \
cut -b4- | tee /dev/stderr | \
xargs gvim --remote