我有一个启动rails脚本的shell脚本:
bin/rails runner script/sync-test.rb $@
sync-test.rb脚本使用optparse,我希望允许用户将"--help"传递给sync-test-rb脚本。然而,现在rails runner可执行文件正在"抓取"--help。
有没有办法强制sync-test.rb脚本保留任何CLI标志?我试过了:
bin/rails runner -- "script/sync-development-testdb.rb $@"
这对来说
Run 'script/rails -h' for help.
所以它一定不是那样的。
在sync-test.rb
:内部使用交互式提示
def ask_for_help
print "Enter --help for help"
case gets.chomp
when "--help"
puts 'ls --help'
else
puts 'ls'
end
end
help = nil
until(help)
help = ask_for_help()
end
print help, "n"
参考
类字符串:方法chomp
Ruby教程:获取用户输入
在脚本中添加一行以检测忽略下一个标志操作符--
ARGV.shift if ARGV.first == '--'
然后使用bin/rails runner script/sync-development-testdb.rb -- $@
运行