如何在Kali Linux中为终端的ruby脚本添加命令?

时间:2019-04-18 00:34:29

标签: ruby shell kali-linux

Noob问题,但是如何在ruby脚本中为终端添加命令?

例如ruby tool.rb,我想添加一个命令-c,该命令将调用一种打印blah blah的方法,然后通过kali linux中的终端执行该命令,因此它看起来像这样ruby tool.rb -c。有谁知道该怎么做,知道这叫什么?

2 个答案:

答案 0 :(得分:0)

这被称为从命令行运行ruby脚本/程序,并将-c之类的“标志”作为命令行参数传递给脚本,并且通常是由空格分隔的字符串值数组。

这是您非常简单的脚本:

tool.rb

#!/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

发送调用私有方法也要谨慎使用

希望,这是您正在寻找的解决方案