나는 stderr를 bash로 복제하는 명령의 stdout을 갖고 싶습니다. 예 :stderr을 stderr에 복제하기
$ echo "FooBar" (...)
FooBar
FooBar
$
여기서 (...)는 리디렉션 표현식입니다. 그게 가능하니?
나는 stderr를 bash로 복제하는 명령의 stdout을 갖고 싶습니다. 예 :stderr을 stderr에 복제하기
$ echo "FooBar" (...)
FooBar
FooBar
$
여기서 (...)는 리디렉션 표현식입니다. 그게 가능하니?
사용 티 :
echo "FooBar" | tee /dev/stderr
또는 수동으로 복제 할 AWK/펄/Python을 사용
을echo "FooBar" | awk '{print;print > "/dev/stderr"}'
echo "FooBar" | perl -pe "print STDERR, $_;"
stderr로 리디렉션 할 경우 >&2
또는 >/dev/stderr
을 사용합니다. 출력을 복제하려면 tee
을 사용합니다. 그것의 단점은 임시 파일이 필요하다는 것입니다 :는/dev/표준 에러와
echo "FooBar" | tee /tmp/stdout >&2 ; cat /tmp/stdout
사용 공정 대체 : http://tldp.org/LDP/abs/html/process-sub.html
echo "FooBar" | tee >(cat >&2)
Tee는 매개 변수로 파일 이름을 사용하고이 파일에 출력을 복제합니다. 프로세스 대체를 사용하면 파일 이름 >(cat)
대신 프로세스를 사용할 수 있으며이 프로세스의 출력을 stderr >(cat >&2)
으로 재 지정할 수 있습니다.
이것은/proc 파일 시스템이없는 OS X와 같은 운영 체제에 적합한 솔루션입니다. – Meow
echo "FooBar" |tee /dev/stderr
tee: /dev/stderr: Permission denied
레드햇 6.3
echo "FooBar" | (read A ; echo $A ; echo $A >&2)
이
죄송합니다. 설명이 추가되었습니다 ;-) – defdefred
참조 작동하고 작동하지 [I 여러 명령에 표준 출력 보낼 수 있습니다 어떻게?] (http://unix.stackexchange.com/questions/28503/할 수있는 - 보낼 - stdout - 여러 명령) –