【发布时间】:2018-09-04 05:39:11
【问题描述】:
这段代码什么也不显示(如果 date.txt 确实存在):
日期> date.txt |剪切
问题:
- 如果我们在其中重定向了标准输出,为什么不能使用 date.txt?
- 是否像 cut 在写入/覆盖之前将 date.txt 作为输入一样?命令执行顺序是从左到右写入管道还是所有命令同时执行并等待上一个管道命令的标准输出中的标准输入?
[为语法和术语错误道歉,并且
日期 |tee date.txt |剪切 --delimiter ' ' --fields 1
有效,众所周知。
]
【问题讨论】:
-
你是在告诉 shell:“将
date的标准输出发送到文件date.txt并且也发送到cut的标准输入”。你的shell没有提供任何方式来表达这一点,所以你必须恢复到外部程序如tee才能达到效果。