如何在 bash shell 中对命令使用无限的参数列表?

如何在 bash shell 中对命令使用无限的参数列表?

我在使用 shell(我的情况是 bash)中的命令时遇到了“参数列表太长”的问题。大多数解决这个问题的建议都是使用find或某种变体,假设它是一个超出参数长度限制的长文件列表。

但是,在我的情况下,它不是文件列表,而是参数列表。我正在使用音频处理软件sox,需要能够使用任意数量的命令行参数(取决于输入音频文件的长度)。因此,例如,我想要的命令的简短版本可能如下所示:

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

但是,我希望它不只是三个修剪/增益参数对,而是能够按照我想要的时间继续运行(所以想象一下它一直继续运行trim 0 1 gain X

有没有办法编写一个函数来生成这个,以颠覆参数长度限制?我尝试了一些变化,但似乎无法弄清楚。

答案1

如果特定解决方案sox可以满足您的迫切需求,我从sox(1)手册页中看到它有一个选项--effects-file,可让您在文件中指定所有编辑,而不是命令行参数。

相关内容