传递相当巨大的参数ruby脚本,问题?

aog*_*ghq 3 ruby

ruby somescript.rb somehugelonglistoftextforprocessing
Run Code Online (Sandbox Code Playgroud)

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

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

pax*_*blo 6

只要不超过命令行处理代码(例如,bash或者ruby自身)的限制,您就不会遇到任何技术问题.

这是一个主意是另一回事.你是否真的想在每次运行程序时输入几百千字节?如果数据包含空格,您是否需要记住在数据周围加上引号?

有很多方法我已经看过这个你可能想要考虑的方法(这个清单并非详尽无遗):

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

       ruby somescript.rb <myFile.txt.

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

我的建议是对该大小的数据使用基于文件的方法,并允许在指定时使用参数.这包括两种可能的情况:

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