Могут ли процессные пространства Ruby's Getoptlong в опциональных аргументах?

StackOverflow https://stackoverflow.com/questions/7826362

  •  27-10-2019
  •  | 
  •  

Вопрос

То, что я пытаюсь сделать, это передать аргумент для опции в сценарии Ruby, который будет командой UNIX. Команда может (вероятно, будет включать в себя грип, трубы и возможное множество других вещей. По сути, мне интересно, можно настроить опцию getoptlong, чтобы принять любой символ в качестве аргумента. Для того, что это стоит, я не могу использовать OptionParser, и, вероятно, не склонен (или как это называется).

Спасибо, -rob

Это было полезно?

Решение

Уверен, что вы можете просто передать свои команды UNIX в качестве строки и выполнить их из своего скрипта ... так что что -то вроде:

#getoptlong.rb

require 'getoptlong'

opts = GetoptLong.new(
  [ '--unix', GetoptLong::OPTIONAL_ARGUMENT ]
)

opts.each do |opt, arg|
  case opt
    when '--unix'
      puts `#{arg}`
  end
end

и выполнить скрипт с чем -то вроде:

ruby getOptLong.rb --unix "netstat -an | grep '61613'"
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top