为什么 Bourne shell 命令用于获取脚本

为什么 Bourne shell 命令用于获取脚本

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 的黄金时代(如果它们曾经是黄金时代的话),所以这只是猜测而已 ;)

相关内容