【发布时间】:2016-01-26 01:21:54
【问题描述】:
我通过 STDIN 将脚本传递给 ruby。例如,
$ ruby << EE
> puts "args: #{ARGV}"
> EE
args: []
$ ruby << EE
> puts "args: #{ARGV}"
> EE 'arg1' 'arg2'
> EE
-:2: syntax error, unexpected tSTRING_BEG, expecting keyword_do or '{' or '('
EE 'arg1' 'arg2'
^
$ ruby 'arg1' 'arg2' << EE
> puts "args: #{ARGV}"
> EE
ruby: No such file or directory -- arg1 (LoadError)
$ ruby -- 'arg1' 'arg2' << EE
> puts "args: #{ARGV}"
> EE
ruby: No such file or directory -- arg1 (LoadError)
$ ruby -e << EE
> puts "args: #{ARGV}"
> EE
ruby: no code specified for -e (RuntimeError)
$
我不知道在这种情况下如何传递参数。 -e 选项无法获得传递给 STDIN 的内容。根据man page,语法为:
ruby ... [--] [prog_file] [args]
但我的prog_file 在STDIN。
【问题讨论】:
标签: ruby command-line command-line-arguments heredoc