Muchas utilidades de línea de comandos pueden tomar su entrada de una tubería o como un argumento de nombre de archivo. Para scripts de shell largos, encuentro que comenzar la cadena con un cat
hace que sea más legible, especialmente si el primer comando necesitaría argumentos de varias líneas.
Comparar
sed s/bla/blaha/ data \
| grep blah \
| grep -n babla
y
cat data \
| sed s/bla/blaha/ \
| grep blah \
| grep -n babla
¿Es este último método menos eficiente? Si es así, ¿la diferencia es suficiente para preocuparse si el script se ejecuta, por ejemplo, una vez por segundo? La diferencia en la legibilidad no es enorme.
cat
. Sin embargo, creo que la pregunta más importante aquí es la legibilidad del código, que a menudo es una prioridad sobre el rendimiento. Cuando más rápido se puede escribir más bonito , ¿por qué no? Señalar el problema cat
generalmente lleva al usuario a tener una mejor comprensión de las tuberías y los procesos en general. Vale la pena el esfuerzo para que escriban un código comprensible la próxima vez.
cat
; el punto de Caleb sobre el uso de funciones y la redirección también lo resuelve.)