我正在ruby中编写一个命令行应用程序,并希望在我的shell中全局运行它,而不必使用./
或ruby <filepath>
为我的调用做准备 - 就像我运行{{ 1}},git
或brew
。
我的简单应用程序的结构如下:我在rails
文件夹中有一个名为/Developer
的目录。内部 rubyPlug 是 plug 和 Formulae.rb 。
我正在ruby中编写一个命令行应用程序,并希望在我的shell中全局运行它,而不必使用rubyPlug
或./
为我的调用做准备 - 就像我运行{{ 1}},ruby <filepath>
或git
。
我的简单应用程序的结构如下:我在brew
中有一个名为rails
的目录。 /Developer
内rubyPlug
和rubyPlug
。 plug
是存储所有特定于应用程序的代码的地方。 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
电话无关的错误消息。
有什么建议吗?
答案 0 :(得分:0)
require
开头的路径, /
应该有效。您还可以使用Dir.chdir
使脚本运行,就好像它不在/usr/bin
中一样。
另外你应该把它放在/usr/local/bin
中。这是自定义可执行文件的正确位置。