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

How to add a command to a ruby script for terminal in Kali linux?

菜鸟问题,但如何在终端的 ruby 脚本中添加命令?

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

这就是所谓的 运行 从命令行调用 ruby script/program 并传递 "flags" 就像 -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

你可以借助 metaprogramminghash

来解决这个问题
def invoke
  puts "blah blah"
end

fun = {"-c": "invoke"}
send(fun[:"#{ARGV[0]}"])

在终端

ruby tool.rb -c

send调用私有方法也要谨慎使用

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