O que faz um nu?

10

bash parece não 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 processos.

Então, o que exatamente isso faz e por que é permitido? Poderia ser útil para qualquer coisa?

    
por Explosion Pills 05.04.2012 / 22:06

2 respostas

19

< configura o redirecionamento para um comando que pode ocorrer antes ou depois das instruções de redirecionamento. Ou seja,

$ < file wc

funciona tão bem quanto

$ wc < file

Mas se você não der um comando, o bash configura o redirecionamento e não faz 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 não existir. Qualquer arquivo de saída existente será truncado se > for usado; nenhum truncamento se >> for usado.

    
por 05.04.2012 / 22:49
5

< 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 depois da leitura.

se você fizer < algum arquivo-que-existe > outputfile no final, então você verá que acabou de ler o conteúdo do primeiro arquivo e o escreveu no segundo arquivo.

< < < está aqui em formato doc, então lê de uma string em vez de um arquivo. cat < < "" para ver o que você leu.

    
por 05.04.2012 / 22:10

Tags