【发布时间】:2011-01-18 08:06:37
【问题描述】:
我想在 ksh 脚本(使用 exec)中创建一个管道,该管道连接到 tee,并将输出发送到管道。
当前:
#Redirect EVERYTHING
exec 3>&1 #Save STDOUT as 3
exec 4>&2 #Save STDERR as 4
exec 1>${Log} #Redirect STDOUT to a log
exec 2>&1 #Redirect STDERR to STDOUT
我喜欢做什么(但我的语法不正确):
#Redirect EVERYTHING
exec 3>&1 #Save STDOUT as 3
exec 4>&2 #Save STDERR as 4
exec 1>tee -a ${Log} >&3 #Redirect STDOUT to a log
exec 2>&1 #Redirect STDERR to STDOUT
如何创建这个管道?
【问题讨论】:
-
至少在 bash 中,每个块中的最后一行最好描述为“将 STDOUT 附加到 STDERR”或“将 STDERR 重定向到 STDOUT”。之后 2>dump-stdout 将是空的,但是任何你 echo >&2 的东西都会和你 echo >&1 的东西去同一个地方。