【问题标题】:passing rather huge arguments to ruby script, problems?将相当大的参数传递给 ruby​​ 脚本,问题?
【发布时间】:2009-11-13 01:33:40
【问题描述】:
ruby somescript.rb somehugelonglistoftextforprocessing

这是个坏主意吗?我应该创建一个包含 somehugelonglistoftextforprocessing 的单独平面文件,然后让 somescript.rb 读取它吗?

如果脚本参数是非常长的文本(1KB~300KB),这有关系吗?如果有的话,可能会出现什么问题。

【问题讨论】:

    标签: ruby


    【解决方案1】:

    只要不超出命令行处理代码的限制(例如,bashruby 本身),您在执行此操作时应该没有技术问题。 p>

    这是否是一个的想法是另一回事。您真的希望在运行程序时每次都输入几百KB吗?如果数据包含空格,您是否需要记住在数据周围加上引号?

    我已经看到了多种处理方法,您可能需要考虑这些方法(此列表绝不是详尽无遗的):

    • 更改您的代码,以便在没有参数的情况下从标准输入读取信息 - 这将允许您执行以下任一操作
      ruby somescript.rb myData

      ruby somescript.rb <myFile.txt

    • 使用特殊字符表示文件输入(我见过@以这种方式使用)。所以,
      ruby somescript.rb myData
      将使用命令行上提供的数据同时
      ruby somescript.rb @myFile.txt
      将从文件中获取数据。

    我的建议是对这种大小的数据使用基于文件的方法,并允许使用参数(如果指定)。这涵盖了两种可能的情况:

    • 大量数据,将其放在一个文件中,这样您就不必每次运行命令时都重新输入。
    • 数据不多,允许将其作为参数传递,这样您就不必为更容易在命令行中输入的内容创建文件。

    【讨论】:

    • 我赞同 paxdiablo 的建议。在another SO thread 上对这种方法进行了一些很好的讨论,可能有用
    猜你喜欢
    • 2012-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-25
    • 2019-11-01
    相关资源
    最近更新 更多