【发布时间】:2017-11-21 04:31:03
【问题描述】:
为什么进入:
date >> log >> file
进入 BASH 只将日期附加到文件中,不影响日志?
【问题讨论】:
-
值得注意的是,这并不是 bash 的限制——“stdout”是操作系统级别的构造,是按照惯例预先打开的文件描述符。因此,文件描述符只能引用一个文件的规则不是 bash 的一部分,而是操作系统设计的一部分。 (那个文件可以是一个FIFO,另一端有像
tee这样的程序,将每个read拆分成多个writes,但从管道左端的程序的角度来看,它的标准输出是仍然只有一个文件)。 -
bash 可以避免它的唯一方法是位于此类 FIFO 本身的另一端,这会产生严重的副作用——阻止软件直接访问它的任何内容 真正写入(因此如果连接到 TTY 则能够运行 ioctl,如果写入文件则能够四处寻找或检测文件名,否则能够访问大量有用的功能)。
标签: linux bash shell unix io-redirection