了解 stderr stdout 重定向

Understanding stderr stdout redirection

我无法理解这一行中发生的事情;谁能帮我分解一下?

exec 3>&1 4>&2 > $SOMEFILE 2>&1

这会将用于标准输出和标准错误的当前文件分别保存到文件描述符 3 和 4,然后再将标准输出重定向到一个文件,将标准错误重定向到同一文件。详细:

  • 3>&1 - 使文件描述符 3 成为 1 的副本,以便对 3 的任何写入都转到当前绑定到 1
  • 的文件
  • 4>&2 - 使文件描述符 4 成为 2 的副本,与 3>&1
  • 的含义相同
  • > $SOMEFILE - 将文件描述符 1 更改为指向 $SOMEFILE
  • 2>&1 - 使文件描述符 2 也引用 $SOMEFILE