我想$var in在 bash 中使用带有范围的 shell 括号扩展。简单地放置{$var1..$var2}不起作用,所以我去了“横向”......
以下工作,但它有点笨拙。
# remove the split files
echo rm foo.{$ext0..$extN} rm-segments > rm-segments
source rm-segments
Run Code Online (Sandbox Code Playgroud)
有没有更“正常”的方式?
我必须做任何配置才能开始大括号扩展吗?当我运行时mkdir {1..10},它只是创建一个目录命名{1..10}。
在回应我对 SF 的这个问题的评论时,OP 断言
for i in {1..$NUM}
Run Code Online (Sandbox Code Playgroud)
在 bash 中正确扩展。我可以访问 bash 4.0.33 (Ubuntu)、3.2.25 (Centos) 和 3.00.16(1) (solaris 10)。这些都不会扩展 {1..$NUM}。
有谁知道哪些版本的 bash 进行了扩展?如果不是 bash 那是什么?我知道 zsh 会进行扩展,但是在 OP 的脚本中,shebang 应该消除别名的可能性?