shell是否使用管道与“ls”通信?

时间:2013-11-09 13:10:40

标签: linux shell exec fork pipe

我的理解

当我在某个shell(bash / ksh / csh / sh / whatsoever_shell)中输入命令ls *.txt时,

1)shell首先展开通配符表达式*.txt(例如a.txt,b.txt,c.txt)
2)然后fork()进行子进程 3)使用扩展表达式作为命令行参数调用exec()(或它的变体)

我的理解是否正确?或者这是否以涉及管道的其他方式发生?

1 个答案:

答案 0 :(得分:3)

您的理解是正确的。不需要使用管道,因为子进程可以共享shell的标准I / O文件描述符。