Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby解释器位于哪里?_Ruby_Interpreter_Interpreted Language - Fatal编程技术网

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时将执行

我正在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的位置

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

$ 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
将找不到您要查找的内容。