管道中的执行过程

时间:2018-09-04 05:39:12

标签: linux shell pipe

此代码不显示任何内容(如果存在date.txt):

  

date> date.txt |切

问题:

  • 如果我们已在其中重定向标准输出,为什么不能使用date.txt?
  • 剪切是否在写入/覆盖之前将date.txt作为输入?
  • 是命令执行顺序是从左开始写在管道中还是所有命令同时执行,而只是等待前一个管道命令的stdout中的stdin?

[针对语法和术语错误的道歉,以及

  

date | tee date.txt |切--delimiter''--fields 1

有效,众所周知。

]

enter image description here

1 个答案:

答案 0 :(得分:2)

管道中的命令是同时执行的。所以当你写

date > date.txt | cut --delimiter '' --fields 1 < date.txt

cut可能会在date写入文件之前尝试从文件中读取内容,并且没有要读取的内容。如果您使用文件进行通信,则不需要管道,只需按顺序编写命令即可。

date > date.txt 
cut --delimiter '' --fields 1 < date.txt