Вы можете запустить which 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
То есть выполните 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, который находится в пути пользователя из скрипта, вместо жесткого кодирования, гдеRuby, вы можете использовать следующую директиву интерпретатора в верхней части вашего скрипта:
#!/usr/bin/env ruby
Это работает, потому что почти во всех современных системах есть исполняемый файл на /usr/bin/env
, который будет выполнять утилиту, которую вы передаетеэто основано на вашем пути;поэтому вместо жесткого кодирования /usr/bin/ruby
в вашем скрипте вы можете позволить env
искать ваш путь для вас.