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



我有一个启动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 -- $@ 运行

相关内容

最新更新