~에서이것나는 &> /dev/null
zsh stdout
리디렉션 stderr
과 /dev/null
.
echo a &> /dev/null
출력이 없습니다.
그러나 내가 할 때
echo a &> /dev/null | cat
cat 은 인쇄할 것이지만 a
나는 아무것도 인쇄하지 않을 것이라고 예상했습니다.
여기서 무슨 일이 일어나고 있는 걸까요?
답변1
don_crissti가 이미 언급했듯이 이는 기본 동작 zsh
이며 끌 수 있습니다 unsetopt multios
.
맨페이지도 참조하세요 zshmisc
.
답변2
따라서 파이프는 암시적 리디렉션입니다.
date >foo | cat
"foo" 파일에 날짜를 쓰고 cat으로 파이프합니다.
여기에서:http://zsh.sourceforge.net/Doc/Release/Redirection.html.
따라서 with multios
옵션 echo a &> /dev/null | cat
은 .echo a 2>1 | tee /dev/null | cat
bash