如何将 stdout 保存到一个文件,将 stderr 保存到另一个文件,将 stdout+stderr 保存到第三个文件,并像正常的 shell 脚本一样将 stdout + stderr 保存到终端?
我在别处找到了这个:
exec > >(tee std_out) 2> >(tee err_out >&2)
ls # Should got to std_out
fsdfs # Command not found goes to err_out
Run Code Online (Sandbox Code Playgroud)
这真的很接近。如果我运行,bash test.sh 2>&1 | tee output那么它可以工作,但我无权访问我的脚本的运行方式。这是一个cicd系统。我需要能够使用 exec 从脚本内部执行“组合输出”。
我正在创建一个 CI/CD 库,但我无法知道客户将使用该库做什么,所以我想考虑每个用例。