Ruby解释器在哪里?

Sun*_*day 9 ruby interpreter interpreted-language

我在OS X上使用Ruby 1.8.7.Ruby 解释器位于何处?我的目标是了解有关Ruby,解释语言和解释/解析的更多信息.

Bri*_*ell 14

which ruby如果您输入ruby终端,您可以运行以找出将执行的ruby的位置.

如果要查找有关可执行文件的更多信息,可以运行:

$ ls -l $(which ruby)
lrwxr-xr-x  1 root  wheel  76 Nov  8 12:56 /usr/bin/ruby -> ../../System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby
Run Code Online (Sandbox Code Playgroud)

也就是说,执行which ruby并将结果传递给ls -l,这将向您显示它实际上是Ruby框架中二进制文件的符号链接.您还可以使用它file来找出它是什么类型的文件:

$ file $(which ruby)
/usr/bin/ruby: Mach-O universal binary with 2 architectures
/usr/bin/ruby (for architecture x86_64):    Mach-O 64-bit executable x86_64
/usr/bin/ruby (for architecture i386):  Mach-O executable i386
Run Code Online (Sandbox Code Playgroud)

如果要确保从脚本执行用户路径中的ruby,而不是在Ruby所在的位置进行硬编码,则可以在脚本顶部使用以下解释器指令:

#!/usr/bin/env ruby
Run Code Online (Sandbox Code Playgroud)

这是有效的,因为几乎所有现代系统都有一个可执行文件,可执行/usr/bin/env根据您的路径传递给它的实用程序; 因此/usr/bin/ruby,您可以让env自己搜索路径,而不是硬编码到您的脚本中.