shell 在Bash中如何调用{1..100}?

vybvopom  于 2023-03-13  发布在  Shell
关注(0)|答案(1)|浏览(87)

我知道{1..100}创建了从1到100的数字序列。我想知道这两个点的语法是如何调用的?它是“seq”的快捷方式吗?其他东西?你能提供到文档的链接吗?

for i in {1..100}
do
 echo $i
done
km0tfn4u

km0tfn4u1#

{x..y}语法({x..y..incr}语法的特例)在Bash文档中称为 sequence expression,其求值由所谓的 brace expansion 机制触发。
尽管seq命令实现了类似的目标(参见下面的示例会话),但它与编写{x..y..incr}有很大不同,后者内置于Bash中,因此不会旋转进程(不像seq命令,它是来自coreutils的二进制文件)。
另一个区别是seq支持变量(例如,seq "$x" "$y"将开箱即用),而字符串{$x..$y}不会被扩展。
相关文档可在本页找到。

$ echo {1..3}
1 2 3
$ echo {1..6..2}
1 3 5
$ seq 1 3
1
2
3
$ seq 1 2 6
1
3
5
$ type seq
seq is hashed (/usr/bin/seq)

相关问题