首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这个外壳命令"exec 3>&1 > >(logger -t "OKOK")“是什么意思?

这个外壳命令"exec 3>&1 > >(logger -t "OKOK")“是什么意思?
EN

Stack Overflow用户
提问于 2012-08-30 18:17:05
回答 2查看 7.4K关注 0票数 4

我在一些源代码中找到了下面的bash命令。

代码语言:javascript
复制
exec 3>&1 > >(logger -t "OKOK")

这到底是什么意思?

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

然而,什么是3>&1

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-30 18:21:32

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

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

IO redirection page上查找更多信息。

票数 5
EN

Stack Overflow用户

发布于 2012-08-30 18:39:58

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12194616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档