bash
não parece reclamar se você executar um comando como
$ < some-file-that-exists
Nada parece acontecer.
Você também pode usar
$ <<<"any string"
e até mesmo substituição de processo.
Então, o que exatamente isso faz e por que é permitido? Poderia ser útil para alguma coisa?
<
fornecerá um erro (zsh: parse error near `\n'
), pois nenhum argumento é fornecido.bash
, mas isso é interessanteless
.Respostas:
<
configura o redirecionamento para um comando que pode ocorrer antes ou depois das instruções de redirecionamento. Ou seja,funciona bem como
Mas se você não der um comando, o bash configurará o redirecionamento e não fará mais nada. Para o redirecionamento de entrada, isso equivale ao que você viu, nada, se o arquivo existir e for legível. Se o arquivo não existir ou não for legível, o bash sinalizará um erro. Para o redirecionamento de saída, o arquivo de saída será criado se ele não existir. Qualquer arquivo de saída existente será truncado se
>
for usado; nenhum truncamento se>>
for usado.fonte
< file wc
vs.wc < file
?<lê de stdin por padrão ou um arquivo. sua expressão não faz nada com a entrada porque você não fez nada após a leitura.
se você criar um arquivo de saída <algum arquivo que exista> no final, verá que acabou de ler o conteúdo do primeiro arquivo e gravá-lo no segundo arquivo.
<<< está aqui no formato doc, então ele lê de uma sequência em vez de um arquivo. gato <<< "qualquer string" para ver o que você leu.
fonte