此问题描述如下:https://github.com/rubygems/rubygems/issues/88
如果您正在开发的 gem 仅供您自己使用,您可以简单地安装它
gem install --no-wrapper my_gem
我认为你最好编写一个运行 bash 脚本的 ruby 脚本。以下是有关如何执行此操作的示例:
bin/test_gem
#!/usr/bin/env ruby
bin_dir = File.expand_path(File.dirname(__FILE__))
shell_script_path = File.join(bin_dir, 'test_gem.sh')
`#{shell_script_path}`
bin/test_gem.sh
#!/bin/sh
echo "Hello World!"
test_gem.gemspec
spec.files = [
# ...
'bin/test_gem', 'bin/test_gem.sh'
]
# ...
spec.executables = ['test_gem']
NOTE:不要忘记将这两个文件设置在bin
文件夹为可执行文件!
请注意,虽然test_gem.sh
已注册files
Rubygems 命令,它没有注册为executables
:它只会被放置在已安装的 gem 的目录中,但不会被包装/填充。
如果您安装了 gem(并在必要时运行 rbenv rehash),请调用test_gem
将导致 ruby 脚本执行您的 shell 脚本。