1>&5 是什么意思?

1>&5 是什么意思?

有时,在 shell 脚本中,我会看到类似

echo yes 1>&5

我知道它会重定向到某个地方,但我想知道更多细节。

更具体地说,1、>、&、5 是什么意思?

如果您能逐个解释的话我将非常感激。

或者任何可以解释的指针。

答案1

在网上搜索了一下后,我发现了这一点。

n>&m    means redirect FD n to the same places as FD m. Eg, 2>&1 means send STDERR to the same place that STDOUT is going to.

STDIN is FD 0, while STDOUT is FD 1, and STDERR is FD 2

參考文獻:http://www.linuxsa.org.au/tips/io-redirection.html

有时会使用文件描述符 5,因为它是编号最小的文件描述符,从未真正用于其他用途(FD 4/dev/tty在某些非常古老的 Unix 上,而 FD 3 在其他 Unix 中有各种非标准的系统特定用途)。尽管 3 和 4 在过去 20 多年中都没有使用过,但您注意到 FD 5 出现可能只是巧合(或传统)。

參考文獻:http://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/html_node/File-Descriptors.html

至于使用它的原因。通过使用文件描述符,脚本编写者无需实际写入文件,这可以节省他的时间并使脚本更简洁(不会意外遗留文件)。此外,它还允许您通过将流重定向到不同位置等来做所有很酷的事情。

相关内容