这个外壳命令"exec 3>&1 > >(loggeR语言 t " OKOK ")"是什么意思



我在一些源代码中发现了以下bash命令。

exec 3>&1 > >(logger -t "OKOK")

它到底是什么意思?

据我所知,它将这些日志重定向到系统日志。

然而,什么是3>&1

我以前从未见过3的文件描述符。

确实不寻常,但它确实存在:

每个打开的文件都会被分配一个文件描述符。stdin、stdout和stderr的文件描述符分别为0、1和2对于打开其他文件,保留描述符3到9。将这些附加文件描述符中的一个作为临时重复链接分配给stdin、stdout或stderr有时很有用。这简化了复杂重定向和重新排列后恢复正常的过程

有关IO重定向页面的详细信息。

从这一行开始,打印到STDOUT的所有内容都将由logger处理。原始STDOUT已保存在fd3中,因此您可以稍后(如果需要)恢复正常的STDOUT。有关详细信息,请参阅Advanced BASH Scripting Guide。

最新更新