bourne shell 的原始开发人员决定命名 source 命令是否有更高的理由.
?
(据我所知,源命令是 bourne 特有的,如果我错了请纠正我)
请注意,bash 有一个.
称为的别名source
,其可读性更强。 sh 没有这个别名,这意味着.
它不是 的缩写形式source
。
答案1
作为维基百科声明,Bourne shell 是作为第一个 shell 的替代品而编写的,汤普森壳,后者是真蠢因此,这一设计决策不太可能源自前身。然而,Bourne 使用了 ALGOL 68 的一些语法规则,并且这可能是原因...请了解 ALGOL 的人纠正我。
这些基本的设计决策很少能够追溯到它们的根源,因为它们对于最初的程序员来说是显而易见的,或者取自当时一些常见但现在已经消亡的语言,或者只是从一系列可能性中随机选择。
对我来说,点命令与“当前某物”相关联,即在 shellscript 的情况下类似于解释器的别名,而短格式意味着没有分叉进程。好吧,这不是一个很好的解释,但并不比其他解释更糟糕。
更新:您还可以查看本文在 ComputerWorld 中。虽然它没有回答你的具体问题,但它本身可能很有趣。
答案2
它们并不完全同义。例如,while.
被 sh 识别,但它不是 csh 的内置命令。同样,whilesource
是 csh 的内置命令,但它不是 sh 的内置命令。
我猜想.
sh 和 csh 的功能是一样的source
,因此出于兼容性原因,两者都实现了。不过,我并没有活在 csh/sh 的黄金时代(如果它们曾经是黄金时代的话),所以这只是猜测而已 ;)