通道符的理解

通道符将前面的标准输出作为标准输入传递给后面的命令。如果标准输出是多行,那么通道符是如何传递的呢?

根据我的理解:标准输出后面跟上通道符后,以换行符为分隔符,输出到流中,然后,同样以换行符为界限,依次

作为标准输入传递到后面的命令里面。

举个例子:

1、先创建一个aa的文件,里面包含2行命令。

mkdir a1

mkdir a2

2、然后执行命令: cat aa | bash

3、该命令会依创建2个目录a1,a2

以上例子说明,cat aa后产生的标准输出并不是一股脑的通过通道传递过去,而是首先暂存到标准流内,以换行符

为分割点,然后通道符会依次从标准流内获取(每次一行)。

原文地址:https://www.cnblogs.com/litifeng/p/6892287.html