Bash:2>&1 是什么意思?

35 浏览
0 Comments

Bash:2>&1 是什么意思?

这个问题已经有答案了:

\"2>&1\" 的含义是什么?

我在一个 bash 命令的末尾看到了

2>&1

这是什么意思?是一种输出重定向吗?

谢谢!

admin 更改状态以发布 2023年5月20日
0
0 Comments

1 是标准输出。2 是标准错误。

2>&1 直接将所有发送到 stderr 的内容指向 stdout。

您可以在这里获取更多信息:这里

0
0 Comments

简单来说,它会将所有在 STDERR 上输出的内容重定向到 STDOUT

> 是一个重定向运算符,它可以将所有 STDOUT 上的输出简单地重定向到一个文件中。

test.sh > file

如果你在前面加上一个数字,则它将使用来自特定文件描述符的输出 - 在你的例子中是 2。其中 1 表示 stdout,2 表示 stderr。

test.sh 2> file.err

将重定向来自描述符 2 = stderr 的所有输出到该文件中。

如果你使用特殊的符号 &1 而不是一个文件名,则该输出不会被写入到一个新文件中,而是写入到带有给定数字的文件描述符中,在这种情况下是 1。

test.sh 2>&1

将从文件描述符 2(stderr)重定向到文件描述符 1(stdout)

如果你想收集所有输出(无论是 stdout 还是 stderr)以进行进一步处理,例如将其输入到另一个程序中,则此方法非常有用。

0