2011-11-27 38 views

回答

13

如果您在終端中鍵入ruby,則可以運行which 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 

也就是說,執行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 

如果你想確保你執行的,而不是硬編碼,其中Ruby是紅寶石是在用戶的路徑從腳本,你可以在你的腳本的頂部使用下面的解釋器指令:

#!/usr/bin/env ruby 

這工作,因爲幾乎所有的現代系統必須在/usr/bin/env可執行將執行您傳遞給它根據您路徑上的效用;因此,不要將/usr/bin/ruby硬編碼到您的腳本中,您可以讓env爲您搜索您的路徑。

3

whereis ruby在終端窗口會告訴你

+3

一般來說,'which'比'whereis'更可靠。 '哪個'會找到實際在你路徑中的那個,而'whereis'會在某些標準目錄中看到;如果你的路徑中有非標準的目錄(比如MacPorts的'/ opt/local/bin'),'whereis'將找不到你要找的內容。 –

2

你會發現它在 System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby
和符號鏈接到 /usr/bin/ruby

正在運行which ruby會給你所使用的ruby的確切位置,如果系統上有一個或多個實現。