全局运行ruby脚本

时间:2014-11-16 15:41:17

标签: ruby command-line global

我正在ruby中编写一个命令行应用程序,并希望在我的shell中全局运行它,而不必使用./ruby <filepath>为我的调用做准备 - 就像我运行{{ 1}},gitbrew

我的简单应用程序的结构如下:我在rails文件夹中有一个名为/Developer的目录。内部 ruby​​Plug plug Formulae.rb

我正在ruby中编写一个命令行应用程序,并希望在我的shell中全局运行它,而不必使用rubyPlug./为我的调用做准备 - 就像我运行{{ 1}},ruby <filepath>git

我的简单应用程序的结构如下:我在brew中有一个名为rails的目录。 /DeveloperrubyPlugrubyPlugplug是存储所有特定于应用程序的代码的地方。 Formulae.rb存储了一些样板启动代码:

Formulae.rb

我想通过输入Plug来运行我的应用。如果我在全球范围内存储!/usr/bin/env ruby require "/Users/theideasmith/Developer/rubyPlug/Formulae.rb" begin x = Application.new ARGV rescue Errno::ENOENT => err abort "plug: #{err.message}" end``` ,我将如何构建plug <args>电话?

我已在plug中添加了require(),运行了#!/usr/bin/env ruby,并尝试了plug我的脚本已运行,但在chmod +x plug调用时失败了。我该如何避免这种情况 - 我是否必须将父目录存储为sudo cp plug /usr/bin/plug.中的某种包?我在require "/Users/.../Formulae.rb"中添加了/usr/bin,运行了#!/usr/bin/env ruby,并尝试了plug。然后我可以输入chmod +x plug,但我收到了与sudo cp plug /usr/local/bin/plug电话无关的错误消息。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

如果您使用绝对路径,即以require开头的路径,

/应该有效。您还可以使用Dir.chdir使脚本运行,就好像它不在/usr/bin中一样。

另外你应该把它放在/usr/local/bin中。这是自定义可执行文件的正确位置。