Eu tenho um programa UNIX de caixa preta usado em um shell Bash que lê colunas de dados de stdin, processa-as (aplicando um efeito de suavização) e depois produz para stdout. Eu o uso por pipes UNIX, como
generate | smooth | plot
Para mais suavização, posso repetir a suavização, para que seja invocada na linha de comando do Bash como
generate | smooth | smooth | plot
ou mesmo
generate | smooth | smooth | smooth | smooth | smooth | smooth | smooth | smooth | smooth | smooth | plot
Isso está ficando desagradável. Gostaria de criar um wrapper Bash para poder canalizar smooth
e alimentar sua saída de volta para uma nova instância de smooth
um número arbitrário de vezes, algo como
generate | newsmooth 5 | plot
ao invés de
generate | smooth | smooth | smooth | smooth | smooth | plot
Minha primeira tentativa foi um script Bash que gerou arquivos temporários no diretório atual e os excluiu, mas ficou feio quando eu não estava em um diretório com acesso de gravação e também deixou arquivos de lixo quando interrompidos.
Não há argumentos para o smooth
programa.
Existe uma maneira mais elegante de "encapsular" esse programa para parametrizar o número de chamadas?