命令行选项--help应用于错误的命令

时间:2014-09-15 22:24:08

标签: ruby-on-rails ruby linux command-line command-line-interface

我有一个用于启动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.

所以一定不能那样。

2 个答案:

答案 0 :(得分:0)

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"

<强>参考

答案 1 :(得分:0)

在脚本中添加一行以检测忽略下一个标志运算符--

ARGV.shift if ARGV.first == '--'

然后使用bin/rails runner script/sync-development-testdb.rb -- $@

运行