我在使用 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
,可让您在文件中指定所有编辑,而不是命令行参数。