
Estou enfrentando o problema da "lista de argumentos muito longa" usando um comando no shell (bash no meu caso). A maioria das sugestões para contornar isso sugere o uso de find
ou alguma variação, presumindo que seja uma longa lista de arquivos que excede o limite de comprimento do argumento.
Porém, no meu caso não é uma lista de arquivos, mas uma lista de argumentos. Estou usando o software de processamento de áudio sox
e preciso usar quantos argumentos de linha de comando desejar (dependendo do comprimento do arquivo de áudio de entrada). Assim, por exemplo, uma versão resumida de um comando que desejo pode ser semelhante a:
sox input.wav output.wav trim 0 1 gain 1 : trim 0 1 gain 2 : trim 0 1 gain 1
Mas em vez de apenas três pares de argumentos de corte/ganho, quero que continue pelo tempo que eu quiser (então imagine que ele continue com trim 0 1 gain X
.
Existe alguma maneira de escrever uma função para gerar isso a fim de subverter o limite de comprimento do argumento? Tentei algumas variações, mas não consigo descobrir.
Responder1
Se uma solução específica sox
atender às suas necessidades imediatas, vejo na sox(1)
página do manual que ela possui uma opção --effects-file
que permite especificar todas as suas edições em um arquivo, em vez de argumentos de linha de comando.