Existem várias maneiras de redirecionar a entrada padrão de um comando ( stdin ):
-
command <fileRedirecionamento simples: stdin será o arquivo -
command <&nDuplicar outro fd: stdin será uma duplicação defdn -
command <<wordAqui doc: stdin será o script atéword -
other | commandPipe: stdin vem da saída deother
Como existe apenas um stdin, somente um redirecionamento para stdin pode ser efetivo. A regra simples é que o último ganha (apesar de todos eles serem aplicados por sua vez, o que é importante se os redirecionamentos incluírem duplicação fd).
O último formulário acima fornece uma maneira simples de concatenar várias entradas:
{ cat <<END; cat <<END; } | command
The first here-doc
END
The second here-doc
END
Alguns shells fornecem formulários de redirecionamento adicionais. Por exemplo, bash , ksh e zsh permitem fornecer "here-strings": command <<<word .