括号扩展范围为什么使用两个点而不是三个点(省略号)?


10

我终于明白了/发现为什么我从来没有使用bash的(还有zsh的)括号扩展范围正确:语法是{1..10}什么,而不是我认为是一个省略号,即{1...10}

我可以知道为什么选择两个点而不是三个点吗?如(Wikipedia)链接所示,省略号在计算机编程中的用法是常见且易于理解的,这就是为什么这引起了我的好奇心。


3
显然,它起源于Perl ...
jasonwryan

3
n1..n2在编程中使用n表示从n1n2的范围 比Perl早很多。请参阅此《 1970年Pascal用户手册》的第6.1.2节,第17页
阿达芬2015年

1
嗨,评论者,随时将您的评论变成答案...?:)
hjk 2015年

我有一个模糊的回忆,有些语言现在甚至使用..vs. ...来包含或不包含正确的端点,但是我可能是错的。(露比?是露比吗?)
乌尔里希·施瓦茨

3
@slm在这里,我将不得不就关闭原因不同意。关于事物如何成为历史的历史问题并不是真正基于观点的。评论已经暗示答案只是历史问题,尽管标题中的“为什么” 可以很可靠地回答。
卡雷布(Caleb)2015年

Answers:


7

(由于评论中的贡献,因此发布为社区Wiki)

在《从Bash到Z Shell》(第8章,第186页,“ 用括号生成数字 ”)一书中提到,该语法是从Perl借用的。

另外,还建议Pascal的..范围符号可以追溯到1970年(强调我的意思)(“ The Programming Language Pascal ”,链接的PDF第6.1.2节,第17页)。

总之,即使是问题的Wikipedia链接也说明了一些在何处..使用的示例。省略号严格定义为三个点的序列(作为标点符号)假设在此并不成立。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.