$ set a b c
$ echo $1 $2 $3
a b c
$ echo ${1..3}
-bash: ${1..3}: bad substitution
我想用大括号扩展来回应 $1 $2 $3。但它不起作用。
扩展的顺序是:大括号扩展、波浪号扩展、参数、变量和算术扩展以及命令替换(以从左到右的方式完成)、分词和路径名扩展。
根据bash手册,大括号扩展是在参数扩展之前进行的。
所以我认为 bash 应该先进行大括号扩展${1..3}
,将其转换为echo $1 $2 $3
,然后进行参数扩展。
然而,事实是 bash 抱怨${1..3}
是一个糟糕的替代品。这是为什么?
PS:谢谢你们!你们所有的答案都很棒。但我认为
Ignacio Vazquez-Abrams 的回答更接近我想要的。