¿Cómo utilizar una lista ilimitada de argumentos para un comando en bash shell?

¿Cómo utilizar una lista ilimitada de argumentos para un comando en bash shell?

Me encuentro con el problema de la "lista de argumentos demasiado larga" usando un comando en el shell (bash en mi caso). La mayoría de las sugerencias para solucionar este problema sugieren el uso findde alguna variación, suponiendo que se trata de una larga lista de archivos que excede el límite de longitud del argumento.

Sin embargo, en mi caso no es una lista de archivos sino una lista de argumentos. Estoy usando el software de procesamiento de audio soxy necesito poder usar tantos argumentos de línea de comando como quiera (dependiendo de la longitud del archivo de audio de entrada). Entonces, por ejemplo, una versión corta de un comando que quiero podría verse así:

sox input.wav output.wav trim 0 1 gain 1 : trim 0 1 gain 2 : trim 0 1 gain 1

Pero en lugar de solo tres pares de argumentos de recorte/ganancia, quiero que continúe todo el tiempo que quiera (así que imagina que continúa con trim 0 1 gain X.

¿Hay alguna forma de escribir una función para generar esto con el fin de subvertir el límite de longitud del argumento? Probé algunas variaciones pero parece que no puedo entenderlo.

Respuesta1

Si una solución específica soxsatisfaría sus necesidades inmediatas, veo en la sox(1)página de manual que tiene una opción --effects-fileque le permite especificar todas sus ediciones en un archivo en lugar de argumentos de línea de comando.

información relacionada