EE args: [] $ ruby puts "args: #{ARGV}" -6ren">
gpt4 book ai didi

ruby - 如何将参数传递给 ruby​​ 命令行脚本

转载 作者:数据小太阳 更新时间:2023-10-29 07:29:55 25 4
gpt4 key购买 nike

我通过 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 << EE "" arg1 arg2
> puts ARGV.inspect
> EE
# ["arg1", "arg2"]

"" 用于 ruby​​ 文件路径,或者在本例中为空。

关于ruby - 如何将参数传递给 ruby​​ 命令行脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34997496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com