Para começar, sort << HERE
e assim por diante não é uma string here. Isso é um documento aqui. A string here usa o operador <<<
. Isso é no bash (e alguns outros shells).
Em geral, existem duas maneiras. Uma é através da entrada padrão (e redirecionamentos), e a outra é através de parâmetros.
-
Entrada padrão e seus redirecionamentos
Este é o fluxo que é, por padrão, conectado ao terminal, no qual um comando é executado e está associado a fd (descritor de arquivo) 1. Ele é alimentado com o que for digitado no terminal. Embora (a entrada) possa ser redirecionada como no uso do pipe |
ou usando os aqui-documentos ou aqui-strings. Em seguida, a entrada não vem do terminal, mas é anexada à saída padrão do comando que precede o pipe. Diferentes shells têm redirecionamentos diferentes, portanto, para esta categoria, você deve verificar a documentação do shell. Procure por redirecionamentos de entrada.
-
Parâmetros
Isso é o que no seu exemplo é sort foo
. Chamando um programa ou uma função você passa um ou mais parâmetros. Um arquivo local é apenas uma possibilidade. O parâmetro pode conter um URL ou o que for. As opções aqui são infinitas.
Para resumir, existem duas maneiras gerais:
-
o primeiro abstrai da lógica interna do aplicativo e manipula a entrada padrão no nível do OS / shell,
-
enquanto o segundo envolve as vísceras do aplicativo, e são eles que oferecem possibilidades ilimitadas, baseando-se nos parâmetros de chamada como uma interface.
Para ambas as maneiras, a resposta é que não há limites. Embora os limites reais vêm com o OS / shell e o próprio aplicativo.