为什么选择“。”代表点命令?


8

看到这个问题后,我想知道为什么.选择了符号来代表点命令

我找不到有关它的起源或创建者的太多信息,并且很好奇为什么选择了句号来代表此命令。


2
您是否尝试问过史蒂芬·伯恩(Stephen Bourne)?
schily

1
@schily:他无法聊天
jesse_b

8
因为将“%”称为“点命令”会很愚蠢。
伊格纳西奥·巴斯克斯

1
@slm:是的,为什么.用来表示dot(source)命令?与.当前目录有关吗?
jesse_b

1
@Rob:不,不是。
jesse_b

Answers:


7

我可以找到的最早提到dot命令的内容是Unix Release 7中Stephen Bourne的shshell 手册(它可能更旧,但显然不是shRelease 6中的内置命令之一)。

. file  Read and execute commands from file and return.  The search path
        $PATH is used to find the directory containing file.

从一般意义上讲,该点似乎与“这里”或“当前”相关联。该.目录是当前目录,并且来自同一Unix版本.adb调试器中的.地址具有的地址就是当前地址。同样地,进入.随后换行符在ed编辑器将重新显示当前行编辑缓冲区(的.地址当前行)。点还表示XML,JSON,YAML等特定结构化查询语言中的当前节点(尽管这些是后来的发明)。

因此,我认为推测.外壳程序中的命令也意味着“这里”或“当前” 并不是很容易。特别是,“在当前环境中运行此脚本”。

该点也相当快速和容易输入,并具有做一项共同的任务(无论是在很短的命令edadb或在shell)可能是另一个原因,是不使用另一个较长的名称。


请注意,我没有的功能版本,sh从7版测试的东西,而且我找不到实际执行.从上面提到的Git仓库该版本伯恩的外壳,所以我不能说确保它实际上确实完成了今天的工作。但是很可能确实如此。


+1。感谢您的长期回答。顺便说一句,当用于从文件运行命令时,点和源之间有什么区别:. scriptfilevs source scriptfilein bash?换句话说,它们是同一内置命令的两个名称吗?
sudodus

@sudodus它们是等效的。该source命令具有不同的历史记录,因为它是从继承的csh
库萨兰达

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.