gpt4 book ai didi

linux - 如何将 stderr 和 stdout 重定向到多个输出文件?

转载 作者:太空宇宙 更新时间:2023-11-04 11:06:10 25 4
gpt4 key购买 nike

我想知道如何编写 3 个命令:

  • 将输出从 stdout 重定向到文件 output.txt
  • 将输出从 stderr 重定向到文件 error.txt
  • 将 stdout 和 stderr 的输出重定向到文件 all.txt

这是我目前的代码,但它没有输出任何东西:

 #!/bin/bash
echo This goes to stdout
echo And this is and error going to stderr 1>&2
exec 1>output.txt
exec 2>error.txt
exec >all.txt 1>&2

最佳答案

您可以使用 tee 命令结合 process substitution 来完成.

#!/bin/bash

exec 3> all.txt # fd3 goes to all.txt
exec 1> >(tee output.txt >&3) # fd1(stdout) goes to both output.txt and fd3
exec 2> >(tee error.txt >&3) # fd2(stderr) goes to both error.txt and fd3

echo Go To Stdout # goes to fd1, and fd1 goes to both output.txt and fd3 (which goes to all.txt)
echo Go To Stderr >&2 # goes to fd2, and fd2 goes to both error.txt and fd3 (which goes to all.txt)

关于linux - 如何将 stderr 和 stdout 重定向到多个输出文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25194905/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com