Noob问题,但是如何在ruby脚本中为终端添加命令?
例如ruby tool.rb
,我想添加一个命令-c
,该命令将调用一种打印blah blah的方法,然后通过kali linux中的终端执行该命令,因此它看起来像这样ruby tool.rb -c
。有谁知道该怎么做,知道这叫什么?
答案 0 :(得分:0)
这被称为从命令行运行ruby脚本/程序,并将-c
之类的“标志”作为命令行参数传递给脚本,并且通常是由空格分隔的字符串值数组。
这是您非常简单的脚本:
#!/usr/bin/env ruby
if ARGV[0] == '-c'
puts 'blah blah'
end
您可以完全按照要求从命令行运行此命令。
ruby tool.rb -c
如果您需要其他参数或要将其他内容传递给您的标志,可以按照我提到的方法进行操作ARGV
,该数组是由在ruby脚本名称后传递的字符串构造而成的,因此:
#!/usr/bin/env ruby
if ARGV[0] == '-c'
puts "blah blah #{ARGV[1]}" # array items are called by index
end
因此,如果您这样做:
ruby tool.rb -c foo
您将获得:
blah blah foo
答案 1 :(得分:0)
您可以借助元编程和哈希
来解决此问题def invoke
puts "blah blah"
end
fun = {"-c": "invoke"}
send(fun[:"#{ARGV[0]}"])
在终端
ruby tool.rb -c
发送调用私有方法也要谨慎使用
希望,这是您正在寻找的解决方案