在 bash 大括号扩展中使用变量

Sme*_*ink 3 bash brace-expansion variable bash-expansion

我有一个程序可以生成可变数量的图片,顺序如下: 1.jpg, 2.jpg [...] 10.jpg..etc

我不能*.jpg用作输入,因为 10 将在 2、3 等之前处理,所以我想使用:

convert page_{1..$N}.jpg out.pdf
Run Code Online (Sandbox Code Playgroud)

但不起作用。命令应该如何?

gle*_*man 6

您可以将文件名存储在一个数组中,使用以下命令生成它们seq

pages=( $(printf 'page_%d.jpg\n' $(seq $N)) )
convert "${pages[@]}" out.pdf
Run Code Online (Sandbox Code Playgroud)