Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 如何将同一消息重定向到stdoud和stderr(没有临时文件)_Shell_Ksh_Tee - Fatal编程技术网

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'