Запуск Ruby без префикса “Ruby”

Добро пожаловать!

Это немного похоже на домашнее задание, поэтому я собираюсь дать подсказки вместо прямого ответа. У вас уже есть цикл, который находит самое низкое значение, используя тест меньше чем . Вы можете расширить это, чтобы рассмотреть, что происходит, когда вы найдете значение, которое равно предыдущему наименьшему значению.

Кроме того, что произойдет, если ваши входы велики, например, [1500, 2000, 1800]?

10
задан Alex Mcp 31 March 2009 в 14:43
поделиться

5 ответов

Да можно сделать это.

Принятие ruby.rb имеет что-то вроде этого в нем:

#!/usr/bin/env ruby
puts 'Hello world'

В командной строке: chmod +x ruby.rb

Это делает это исполняемым файлом.

Затем можно выполнить его как это:

./ruby.rb

Для получения дополнительной информации посмотрите Викиучебник.

РЕДАКТИРОВАНИЕ (Jörg W Mittag): Использование #!/usr/bin/env ruby вместо #!/usr/bin/ruby поскольку строка хижины является более портативной, потому что на каждом Unix произвел за прошлые 20 лет, env команда, как известно, живет в /usr/bin, тогда как установки Ruby обычно повсеместно. (Например, сроки службы шахты в /home/joerg/jruby-1.2.0/bin/ruby.)

26
ответ дан 3 December 2019 в 13:44
поделиться

Как другие упомянули, Вы хотите иметь хижину (#!) строка вначале и изменение полномочия к исполняемому файлу.

Я рекомендовал бы использовать #!/usr/bin/env ruby вместо пути к Ruby непосредственно, так как это сделает Ваш сценарий более портативным к системам, которым можно было установить Ruby в различных каталогах; env будет искать в Вашем пути поиска, и таким образом, он найдет тот же Ruby, который Вы выполнили бы, если бы Вы работали ruby на командной строке. Конечно, это будет иметь проблемы если env находится в другом месте, но это намного более характерно для env быть в /usr/bin/env чем то, чтобы Ruby был в /usr/bin/ruby (это может быть в /usr/local/bin/ruby, /opt/bin/ruby, /opt/local/bin/ruby, и т.д.)

#!/usr/bin/env ruby
puts "Hello!"

И сделайте это исполняемым файлом:

chmod +x file.rb
7
ответ дан 3 December 2019 в 13:44
поделиться

chmod +x/path/to/file

Никакая причина не сделать это, пока Вы снабжаете префиксом интерпретатор хижину (#!/usr/local/ruby или независимо от того, что путь находится на OSX). Оболочка не заботится.

4
ответ дан 3 December 2019 в 13:44
поделиться

Если Вы хотите сделать что-либо более сложное с запуском этого приложения, можно всегда создавать сценарий оболочки:

#! /bin/sh
ruby ruby.rb

При сохранении его к run_script Вы просто имеете к chmod +x его, как упомянуто ранее, то выполняете следующую команду:

$ ./run_script

Я сомневаюсь, что это будет больше полезно в Вашей конкретной ситуации, чем решения, уже упомянутые, но это стоит отметить пользой полноты.

3
ответ дан 3 December 2019 в 13:44
поделиться

Поместите корректную хижину как первую строку Вашего файла. исключая:

#!/usr/bin/ruby

в оболочке сделайте исполняемый файл файла

chmod +x file
2
ответ дан 3 December 2019 в 13:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: