Ruby解释器位于哪里?
我正在OS X上使用Ruby 1.8.7。Ruby解释器在哪里?我的目标是学习更多关于Ruby、解释语言和解释/解析的知识。Ruby解释器位于哪里?,ruby,interpreter,interpreted-language,Ruby,Interpreter,Interpreted Language,我正在OS X上使用Ruby 1.8.7。Ruby解释器在哪里?我的目标是学习更多关于Ruby、解释语言和解释/解析的知识。终端窗口中的Ruby在哪里会告诉您应该在下找到它 System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/Ruby 并链接到 /usr/bin/ruby 如果您的系统上有一个或多个实现,运行哪个ruby将为您提供正在使用的ruby的确切位置。您可以运行哪个ruby,以找出在终端中键入ruby时将执行
终端窗口中的Ruby
在哪里会告诉您应该在下找到它
System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/Ruby
并链接到
/usr/bin/ruby
如果您的系统上有一个或多个实现,运行
哪个ruby
将为您提供正在使用的ruby的确切位置。您可以运行哪个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
也就是说,执行whichruby
,并将结果传递到ls-l
,这将显示它实际上是ruby框架中二进制文件的符号链接。您还可以使用文件
查找该文件的类型:
$ 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
如果要确保从脚本执行用户路径中的ruby,而不是在ruby所在的位置进行硬编码,可以在脚本顶部使用以下解释器指令:
#!/usr/bin/env ruby
这是因为几乎所有现代系统都有一个位于
/usr/bin/env
的可执行文件,它将根据您的路径执行您传递给它的实用程序;因此,您可以让env
为您搜索路径,而不是将/usr/bin/ruby
硬编码到脚本中。通常,哪个比在哪里更可靠which
将查找实际位于您路径中的路径,而whereis
将查找某些标准目录;如果路径中有非标准目录(如MacPorts的/opt/local/bin
),则Where is
将找不到您要查找的内容。