Redirect T形三通标准件至文件(csh/tcsh外壳)

Redirect T形三通标准件至文件(csh/tcsh外壳),redirect,csh,tcsh,tee,Redirect,Csh,Tcsh,Tee,如何将STDEER重定向到一个文件,而STDOUT和STDERR仍然显示在屏幕上 我在web上发现了许多方法,但它们不适用于csh/tcsh shell。 但是,我的命令不能在“bashshell”上运行 我知道的情况如下: (命令>/dev/null)>&stderr.log 但这将屏蔽屏幕显示。tcsh的IO重定向选项将同时重定向stdout和stderr,或者仅重定向stdout 一个选项是将stdout重定向到/dev/tty,然后将stderr复制到stdout和tee中 % (com

如何将STDEER重定向到一个文件,而STDOUT和STDERR仍然显示在屏幕上

我在web上发现了许多方法,但它们不适用于csh/tcsh shell。 但是,我的命令不能在“bashshell”上运行

我知道的情况如下:

(命令>/dev/null)>&stderr.log


但这将屏蔽屏幕显示。

tcsh
的IO重定向选项将同时重定向stdout和stderr,或者仅重定向stdout

一个选项是将stdout重定向到
/dev/tty
,然后将stderr复制到stdout和
tee

% (command > /dev/tty) |& tee stderr.log
请注意,这将始终写入控制台,即使在脚本中使用,然后通过管道传输到其他地方

您可以从tcsh内部调用其他shell,因此值得一提的是它们可以做什么

Bourne兼容的Shell只能使用管道stdout,但确实有用于操作文件描述符的语法,通过使用第三个文件描述符作为临时存储,我们可以交换stdout和stderr。序列
3>&22>&11>&33>&-
完成此操作,然后关闭文件描述符3

$ (command 3>&2 2>&1 1>&3 3>&- | tee stderr.log) 3>&2 2>&1 1>&3 3>&-
Bash和其他一些shell(如zsh)支持进程替换,这允许您将命令用作源
(…)


如果您不介意rants,并且有一些关于(t)csh引用、重定向、条件和别名的粗糙边缘的适当信息。但是,有关特定bug的一些信息早已过时。

tcsh
的IO重定向选项是同时重定向stdout和stderr,或者只重定向stdout

一个选项是将stdout重定向到
/dev/tty
,然后将stderr复制到stdout和
tee

% (command > /dev/tty) |& tee stderr.log
请注意,这将始终写入控制台,即使在脚本中使用,然后通过管道传输到其他地方

您可以从tcsh内部调用其他shell,因此值得一提的是它们可以做什么

Bourne兼容的Shell只能使用管道stdout,但确实有用于操作文件描述符的语法,通过使用第三个文件描述符作为临时存储,我们可以交换stdout和stderr。序列
3>&22>&11>&33>&-
完成此操作,然后关闭文件描述符3

$ (command 3>&2 2>&1 1>&3 3>&- | tee stderr.log) 3>&2 2>&1 1>&3 3>&-
Bash和其他一些shell(如zsh)支持进程替换,这允许您将命令用作源
(…)


如果您不介意rants,并且有一些关于(t)csh引用、重定向、条件和别名的粗糙边缘的适当信息。但是,关于特定bug的一些信息早已过时。

但我只想将STDERR重定向到文件,而不是同时重定向到STDOUT和STDERR。抱歉,我误读了。但我只想将STDERR重定向到文件,而不是同时重定向到STDOUT和STDERR。抱歉,我误读了。