我知道{1..100}创建了从1到100的数字序列。我想知道这两个点的语法是如何调用的?它是“seq”的快捷方式吗?其他东西?你能提供到文档的链接吗?
{1..100}
for i in {1..100} do echo $i done
km0tfn4u1#
{x..y}语法({x..y..incr}语法的特例)在Bash文档中称为 sequence expression,其求值由所谓的 brace expansion 机制触发。尽管seq命令实现了类似的目标(参见下面的示例会话),但它与编写{x..y..incr}有很大不同,后者内置于Bash中,因此不会旋转进程(不像seq命令,它是来自coreutils的二进制文件)。另一个区别是seq支持变量(例如,seq "$x" "$y"将开箱即用),而字符串{$x..$y}不会被扩展。相关文档可在本页找到。
{x..y}
{x..y..incr}
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)
1条答案
按热度按时间km0tfn4u1#
{x..y}
语法({x..y..incr}
语法的特例)在Bash文档中称为 sequence expression,其求值由所谓的 brace expansion 机制触发。尽管
seq
命令实现了类似的目标(参见下面的示例会话),但它与编写{x..y..incr}
有很大不同,后者内置于Bash中,因此不会旋转进程(不像seq
命令,它是来自coreutils的二进制文件)。另一个区别是
seq
支持变量(例如,seq "$x" "$y"
将开箱即用),而字符串{$x..$y}
不会被扩展。相关文档可在本页找到。