bash是使用虚拟机还是编译成机器代码



我知道bash通过一行接一行地运行文件来运行文件。但我不想知道它到底是怎么做到的,我是口译员的新手,还在学习技巧。它是如何运行代码的,是将一行代码编译成字节码并在VM中运行,还是编译成机器代码,或者完全是其他什么?

https://www.gnu.org/software/bash/manual/bash.html#What-is-a-shell_003f

在其基础上,shell只是一个执行命令的宏处理器。术语"宏处理器"是指扩展文本和符号以创建更大表达式的功能。

Unix shell既是命令解释器又是编程语言。作为一个命令解释器,shell为丰富的GNU实用程序集提供了用户界面。编程语言功能允许将这些实用程序组合在一起。可以创建包含命令的文件,这些文件本身也可以成为命令。这些新命令的状态与/bin等目录中的系统命令相同,允许用户或组建立自定义环境以自动执行其常见任务。

它是一个解释器,但从shell脚本启动的大多数程序都是二进制的。

如果你想知道的话,解释器本身是用C编写的。您可以在上找到源代码https://git.savannah.gnu.org/cgit/bash.git/tree/

最新更新