Eu tenho um programa UNIX de caixa preta usado em um shell Bash que lê colunas de dados de stdin, os processa (aplicando um efeito de suavização) e depois envia para stdout. Eu 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. Eu gostaria de fazer um wrapper Bash para poder canalizar smooth
e alimentar sua saída de volta em 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 interrompido.
Não há argumentos para o smooth
programa.
Existe uma maneira mais elegante de "empacotar" esse programa para parametrizar o número de chamadas?