Tengo un programa UNIX de recuadro negro utilizado en un shell Bash que lee columnas de datos de stdin, los procesa (aplicando un efecto de suavizado) y luego los envía a stdout. Lo uso por tuberías UNIX, como
generate | smooth | plot
Para más suavizado, puedo repetir el suavizado, por lo que se invocará desde la línea de comando Bash como
generate | smooth | smooth | plot
o incluso
generate | smooth | smooth | smooth | smooth | smooth | smooth | smooth | smooth | smooth | smooth | plot
Esto se está volviendo extraño. Me gustaría hacer un contenedor Bash para poder canalizar smooth
y alimentar su salida de nuevo a una nueva instancia de smooth
un número arbitrario de veces, algo así como
generate | newsmooth 5 | plot
en lugar de
generate | smooth | smooth | smooth | smooth | smooth | plot
Mi primer intento fue un script Bash que generó archivos temporales en el directorio actual y los eliminó, pero eso se volvió feo cuando no estaba en un directorio con acceso de escritura, y también dejaba archivos basura cuando se interrumpía.
No hay argumentos para el smooth
programa.
¿Hay una manera más elegante de "envolver" un programa para parametrizar el número de llamadas?