- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个 Ruby 程序(学校项目),我需要像这样指定服务器和端口:
ruby program.rb -s servername -p 8080
我还需要能够将文件作为 STDIN 输入(在 linux/unix 终端中使用 < 运算符)
ruby program.rb -s servername -p 8080 < testfile.txt
我做了一个测试 ruby 脚本,只是 puts gets
。当这样运行时
ruby test.rb -s servername -p 8080 < testfile.txt
我收到此错误:
test.rb:5:in 'gets': No such file or directory @ rb_sysopen - -s (Errno::ENOENT)
当我使用这些参数时,Ruby 似乎正在尝试打开一个具有第一个参数名称的文件(在本例中为“-s”),而不是 <
之后指定的文件。运算符。
有办法解决这个问题吗?我在 Ruby 2.1.0 和 2.1.5 上都遇到了同样的错误。
编辑:刚刚尝试执行 STDIN.readline 并且它工作正常......什么???
最佳答案
关于Ruby ARGF 和额外参数不稳定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27114614/
这个问题已经有答案了: Why is gets throwing an error when arguments are passed to my ruby script? (2 个回答) 已关闭 8
使用 ARGF,我可以创建尊重管道的 Ruby 程序。假设,我要不断阅读新条目: $ tail -f log/test.log | my_prog 我可以使用: ARGF.each_line do |
ARGF.set_encoding说: If single argument is specified, strings read from ARGF are tagged with the enco
ARGF.each_with_index do |line, idx| print( "[#{idx}] #{line} x: " ); indent = Indent
我试图让我的代码能够接受来自命令行输入的多个日志文件,以根据不同的分隔符进行解析,并接受命令来解析某个日志文件的所有步骤。 它目前一次只能接受一个命令,它解析的日志文件是在代码中确定的,而不是变量@l
在 Ruby 1.9 中,我如何从 ARGF 中读取 CSV? 我尝试了以下方法,但没有打印任何内容: require 'csv' CSV(ARGF).read do |row| p row
我想像这样处理ARGF。 # file.rb if ARGF.??? puts ARGF.read else puts "no redirect." end $ echo "Hello wor
在 Ruby 1.8.7 中,the documentation不在类和模块下列出 ARGF,并且 ARGF 不是类或模块: ARGF.class # => Object 在 Ruby 1.9.3 中
我使用 GLI 2.0 gem 创建了自己的 gem对于所有漂亮的命令行结构。它工作正常,但我还想支持管道输入的数据。 my_prog new some_file # this is ok alrea
我是一名优秀的程序员,十分优秀!