¿Pueden los espacios de proceso Getoptlong de Ruby en los argumentos de opción?

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

  •  27-10-2019
  •  | 
  •  

Pregunta

Lo que estoy tratando de hacer es pasar un argumento para una opción en un script de Ruby que será un comando UNIX. El comando puede (probablemente) involucrar grrepes, tuberías y posibles muchas otras cosas. Esencialmente, lo que me pregunto es que se puede configurar una opción Getoptlong para aceptar cualquier personaje como argumento. Por lo que vale, no puedo usar OppectParser, y probablemente tampoco SLOB (o como se llame).

Gracias, -Rob

¿Fue útil?

Solución

Bastante seguro de que puede pasar sus comandos UNIX como una cadena y ejecutarlos desde su script ... así que algo así:

#getoptlong.rb

require 'getoptlong'

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

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

y ejecute el script con algo como:

ruby getOptLong.rb --unix "netstat -an | grep '61613'"
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top