bash 中的简单命令是否可以在子 shell 中运行,因为单个命令可以构成一个管道?

Cod*_*rus 1 bash

Bash 参考手册指出:

管道是一个或多个命令的序列

因此,任何命令都不会因此被限定为管道吗?这似乎不是一个纯粹的语义问题,因为手册还指出:

管道中的每个命令都在其自己的子 shell 中执行

所以这意味着一些简单的事情echo foo,事实上,在子shell中运行?

Cha*_*ffy 5

该手册不是正式的规范。bash 遵循的正式规范(实现了一个很大的超集)是POSIX shell 命令语言。该规范在第 2.12 节中更清楚地说明了规则,并添加了格式以强调:

此外,多命令管道的每个命令都在子外壳环境中[...]

因此,一个简单的单命令管道(1)实际上是一个管道;但是(2)不调用子shell。