Pipelines 管道

pipeline(管道) 是一个或多个命令的序列,用字符 | 分隔。管道的格式是这样:

[time [-p]] [ ! ] command [ | command2 ... ]

命令 command 的标准输出通过管道连接到命令 command2 的标准输入。连接是在命令指定的任何重定向之前进行的(参见下面的 REDIRECTION 重定向)。

如果保留字 ! 作为管道前缀,管道的退出状态将是最后一个命令的退出状态的逻辑非值。 否则,管道的退出状态就是最后一个命令的。 shell 在返回退出状态值之前,等待管道中的所有命令返回。

如果保留字 time 作为管道前缀,管道中止后将给出执行管道耗费的用户和系统时间。 选项 -p 将使输出符合 POSIX 指定的格式。 环境变量 TIMEFORMAT 可以设置为一个格式字符串,指定时间信息应当如何显示;参见下面的 Shell Variables 环境变量TIMEFORMAT 的讲述。

管道中的每个命令都作为单独的进程来执行(即,在一个子 shell 中启动)。