From f1ec058177ff9ddddabcad6f8470b4b0bf4afd63 Mon Sep 17 00:00:00 2001 From: Jilles Tjoelker Date: Sat, 16 Oct 2010 14:37:56 +0000 Subject: [PATCH] sh(1): Clarify subshells/processes for pipelines. For multi-command pipelines, 1. all commands are direct children of the shell (unlike the original Bourne shell) 2. all commands are executed in a subshell (unlike the real Korn shell) MFC after: 1 week --- bin/sh/sh.1 | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/bin/sh/sh.1 b/bin/sh/sh.1 index 985f0112e44c..34999691e7cf 100644 --- a/bin/sh/sh.1 +++ b/bin/sh/sh.1 @@ -32,7 +32,7 @@ .\" from: @(#)sh.1 8.6 (Berkeley) 5/4/95 .\" $FreeBSD$ .\" -.Dd September 10, 2010 +.Dd October 16, 2010 .Dt SH 1 .Os .Sh NAME @@ -736,6 +736,13 @@ both of a command is considered to be assigned by the pipeline before any redirection specified by redirection operators that are part of the command. .Pp +Note that unlike some other shells, +.Nm +executes each process in a pipeline with more than one command +in a subshell environment and as a child of the +.Nm +process. +.Pp If the pipeline is not in the background (discussed later), the shell waits for all commands to complete. .Pp @@ -773,15 +780,6 @@ to be executed sequentially; an .Ql & causes asynchronous execution of the preceding AND-OR-list. -.Pp -Note that unlike some other shells, -.Nm -executes each process in the pipeline as a child of the -.Nm -process. -Shell built-in commands are the exception to this rule. -They are executed in the current shell, although they do not affect its -environment when used in pipelines. .Ss Background Commands (&) If a command is terminated by the control operator ampersand .Pq Ql & ,