自:
irb --help
字符串
用法:irb.rb [选项] [程序文件] [参数]
我知道如果我包含一个 programfile,我可以将参数传递给ARGV
例如:
irb test.rb A B C
型
其中test.irb只是“p ARGV”
生产:
[“a”、“B”、“c”]
在DOS下将 programfile 设为con.
irb con A B C
con(main):001:0> ARGV
型
生产:
ARGV
=> [“A”,“B”,“C”]
但这是系统相关的,并且具有回声输入的副作用:-(
我真正喜欢的是
irb -- a b c
型
顺便说一句:我知道我可以在irb中设置ARGV,但我的目的是别名special == irb -rSpecialLibrary”,所以我可以这样做:
special A B C
<input goes here>
型
有什么建议吗?
5条答案
按热度按时间avwztpqn1#
查看
irb
可执行文件的源代码:字符串
IRB模块的源代码:
型
下到
parse_opts
,我们的问题方法:型
它被硬编码为将该选项作为脚本名(@CONF[:CONT] = opt)。幸运的是,这是Ruby。我的第一个想法是使用不同的脚本来启动IRB,首先修改模块。
~/bin/custom-irb:
型
你可以用
custom-irb foo bar baz
启动它,ARGV将是['foo', 'bar', 'baz']
。91zkwejq2#
As of 2022,现在有一个
--noscript
选项来实现这一目标。请参阅IRB文档以获得解释和示例用法,复制在这里:字符串
2sbarzqh3#
方法一:使用Ruby的-e选项一种方法是使用Ruby命令和-e选项来执行一个小脚本,该脚本在设置ARGV后启动irb。这允许您传递参数,就像将参数传递给脚本一样。
字符串
此命令执行以下操作:
将ARGV设置为所需的参数。
需要irb库。
开始IRB会话。
你可以用你需要的任何参数来替换“A”,“B”,“C”]。
mpgws1up4#
一个很奇怪的解决方案是创建一个带有变量的文件
字符串
和
型
tmb3ates5#
您可以创建一个修改ARGV的文件,然后使用'-r'来包含它。
字符串
您甚至可以将其重定向到您的~/.irbrc,并省略'-r ./blah'。