Использование ruby ​​в оболочке UNIX - PullRequest
0 голосов
/ 29 июля 2011

У меня есть эта программа в ruby.Я не буду объяснять весь процесс, но в итоге он дал мне строку.Я хотел бы использовать эту строку в моей оболочке.Сейчас я могу сгенерировать его с помощью ruby mysoft.rb Я хотел бы использовать строку результата в команде, например, когда я фиксирую с помощью git, с чем-то вроде этого

git commit -m "$generated_string"

Я хотел бы, чтобыФайл был установлен на компьютер и может использоваться им.С помощью одной команды он может получить сгенерированную строку из любого каталога, например, «нормальную» команду, например, «ls», например.

Понятия не имею, как это сделать?Должен ли я сделать Gem?Или что-то другое.Я новичок в Ruby, так что я в замешательстве.Большое спасибо.

Ответы [ 2 ]

2 голосов
/ 29 июля 2011

Измените первую строку вашей программы на:

#!/usr/bin/env ruby

Эта строка сообщает оболочке, что для выполнения этого скрипта по умолчанию следует использовать ruby.

Прежде чем вы сможете запустить скрипт, вам нужно добавить исполняемый бит в файл:

> chmod gou+x mysoft.rb

Теперь вы можете напрямую набирать в командной строке:

> ./mysoft.rb

И ruby ​​запустит вашу программу.

Если вы хотите сделать команду глобально доступной на вашем компьютере, например, с именем mysoft, то вам нужно сделать это:

> sudo cp mysoft.rb /usr/bin/mysoft

Это установит программу в каталог bin системы. После этого всякий раз, когда вы набираете mysoft в любом месте машины, ваша программа будет запускаться.

2 голосов
/ 29 июля 2011

Вы ищете подстановка команд оболочки ; синтаксис зависит от того, какую оболочку вы используете. Например, если вы используете bash или csh:

$ git commit -m `ruby mysoft.rb`

Следующий синтаксис делает то же самое, но только в bash:

$ git commit -m $(ruby mysoft.rb)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...