A implementação inicial dos builtins presumia que eles deveriam ser invocados apenas no processo pai, na verdade isto se demonstrou falso através dos seguintes testes:
echo 1 | exit 1 -> nenhum output e o shell continua
exit | echo hey -> o bash não se encerra e a aplicação continua
exit | cd -> a aplicação não se encerra e o diretorio permanece o mesmo
cd | echo $PWD -> a pasta atual será exibida e não a pasta home
export var=hey | export var=bonjour | echo $var -> produz vazio
Isto demonstra que quando na presença de pipes cada builtin é executado dentro de um processo separado
quando sozinhos são executados no processo
A implementação inicial dos builtins presumia que eles deveriam ser invocados apenas no processo pai, na verdade isto se demonstrou falso através dos seguintes testes:
echo 1 | exit 1
-> nenhum output e o shell continuaexit | echo hey
-> o bash não se encerra e a aplicação continuaexit | cd
-> a aplicação não se encerra e o diretorio permanece o mesmocd | echo $PWD
-> a pasta atual será exibida e não a pasta homeexport var=hey | export var=bonjour | echo $var
-> produz vazioIsto demonstra que quando na presença de pipes cada builtin é executado dentro de um processo separado quando sozinhos são executados no processo