管道是否写入stdin?

时间:2013-10-17 22:55:57

标签: linux

运行类似下面的内容会导致文本文件行被定向到program.sh的STDIN吗?

cat textfile | program.sh 

3 个答案:

答案 0 :(得分:1)

是;这个答案的其余部分满足了每个答案至少30个字符的要求(不包括链接)。

http://en.wikipedia.org/wiki/Pipeline_(Unix)

答案 1 :(得分:1)

是。您正在将标准输出从cat写入program.sh的标准输出。因为cat除了读取文件之外没有做太多工作,所以你也可以把它写成:

program.sh < textfile

... does the same thing

从技术角度来看,stdin是通过文件描述符0访问的,而stdout是文件描述符1而stderr是文件描述符2.有了这些信息,你可以进行更复杂的重定向,例如将stderr重定向到同一个地方(或者一个不同的地方!)比stdout。有关重定向的备忘单,请参阅Peteris Krumins的Bash Redirections Cheat Sheet

答案 2 :(得分:0)

您正在对文本文件运行命令sort。输出转到program.sh