Shell 如何将同一消息重定向到stdoud和stderr(没有临时文件)
使用Shell 如何将同一消息重定向到stdoud和stderr(没有临时文件),shell,ksh,tee,Shell,Ksh,Tee,使用1>&1、&2和/或>file将stdout或stderr重定向到相同的输出(文件或两个std输出中的一个)是很容易的,但是有没有办法将相同的输出发送到KSH中的两个std输出(如|tee file,但将&2作为文件) 编辑:在Unix和Linux上,将[read]和[echo]替换为[read-r]和[print]响应 作者:Stéphane Chazelas { your-code } | perl -pe 'print STDERR' 更合适的是,我没有收到你的问题。命令2>&1?
1>&1
、&2
和/或>file
将stdout或stderr重定向到相同的输出(文件或两个std输出中的一个)是很容易的,但是有没有办法将相同的输出发送到KSH中的两个std输出(如|tee file
,但将&2
作为文件)
编辑:在Unix和Linux上,将[read]和[echo]替换为[read-r]和[print]响应 作者:Stéphane Chazelas
{ your-code } | perl -pe 'print STDERR'
更合适的是,我没有收到你的问题。
命令2>&1
?或组合的&>文件
中有什么问题?2>&1
仅将stdout重定向到stdout,但在这种情况下,您松开了stdout。我试图让流同时到达stdout和stderr(复制输出,每个通道上一个),但不使用临时obejct(变量或文件)@Etan Reisner:这与&
正好相反,所有流都流向一个流(它不像BASH那样在KSH上工作)好的,非常简单的批处理,好主意。只需调整读取以允许带a-r的“\”,并可能使用printf而不是echo来避免shell的解释
{ your-code } | perl -pe 'print STDERR'