O Que É Redirecionamento de stdin? Alimentando Entrada de um Arquivo
O redirecionamento de stdin usa o operador < para alimentar o conteúdo de um arquivo (ou outra fonte) em um comando como sua entrada padrão.
A maioria dos comandos pode ler de stdin, e o redirecionamento permite escolher de onde essa entrada vem. O operador < aponta o stdin de um comando para um arquivo em vez do teclado. Scripts de CI usam redirecionamento de entrada para alimentar arquivos de SQL, config ou dados em ferramentas sem digitação interativa, o que importa porque CI não tem teclado.
O que é redirecionamento de stdin
O operador < conecta a entrada padrão de um comando a um arquivo. sort < data.txt roda sort com o conteúdo do arquivo como sua entrada, exatamente como se você o tivesse digitado.
Redirecionamento versus piping
Um pipe envia a saída de um comando para a entrada de outro; o redirecionamento envia o conteúdo de um arquivo para a entrada de um comando. cat data.txt | sort e sort < data.txt alcançam resultados similares, embora o redirecionamento evite um processo extra.
Formas de redirecionamento de entrada
cmd < filealimenta um arquivo como stdin.cmd <<EOF ... EOFalimenta um here-document inline.cmd <<< "text"alimenta uma única here-string.
Por que usar redirecionamento
O redirecionamento de entrada permite que uma ferramenta consuma dados sem um usuário digitá-los, o que é essencial para automação. Ele também mantém scripts limpos ao evitar cadeias desnecessárias de cat | command.
Redirecionamento de stdin em CI
CI usa redirecionamento de entrada para alimentar arquivos preparados em ferramentas: um script SQL em um cliente de banco de dados, uma config em um gerador. Como CI é não-interativo, redirecionar um arquivo para stdin é como você fornece a entrada que uma ferramenta pediria de outra forma.
Alimentando ferramentas em runners gerenciados
Nos runners da Latchkey, redirecionar um arquivo para o stdin de um comando permite que uma etapa opere ferramentas de estilo interativo sem um humano. Prepare o arquivo de entrada em um comando anterior, então redirecione-o, mantendo a etapa totalmente automatizada.
Principais conclusões
- O redirecionamento de stdin usa
<para alimentar um arquivo em um comando como entrada. - Ele difere de um pipe, que conecta a saída de um comando a outro.
- CI o usa para fornecer entrada de forma não-interativa, já que não há teclado.