Muitos utilitários de linha de comando podem receber suas entradas de um canal ou como um argumento de nome de arquivo. Para scripts shell longos, acho que iniciar a cadeia com a cat
torna mais legível, principalmente se o primeiro comando precisar de argumentos de várias linhas.
Comparar
sed s/bla/blaha/ data \
| grep blah \
| grep -n babla
e
cat data \
| sed s/bla/blaha/ \
| grep blah \
| grep -n babla
O último método é menos eficiente? Se sim, a diferença é suficiente para se preocupar se o script é executado, digamos, uma vez por segundo? A diferença de legibilidade não é enorme.
cat
. No entanto, acho que a questão maior aqui é a legibilidade do código, que geralmente é uma prioridade sobre o desempenho. Quando mais rápido pode realmente ser escrito mais bonito , por que não? Apontar o problema cat
geralmente leva o usuário a entender melhor os pipelines e processos em geral. Vale a pena o esforço para que eles escrevam códigos compreensíveis da próxima vez.
cat
; ponto de Calebe sobre como utilizar funções e resolve redirecionamento isso também.)