Quoting problem with %x

I'm having a problem invoking external programs from ruby that are passed
arguments containing spaces. I have a program that I would invoke outside
of ruby like:

  progname -o 'something with spaces'

How do I get the output from this within ruby? If I run:

  %x[progname -o 'something with spaces']

the single quotes get lost and the result is as if
"progname -o something with spaces" had been invoked.

Attempting to escape the quotes like:

  %x[progname -o \'something with spaces\']

doesn't help. Can someone enlighten me on how this can be done?

···

--
Will

How do I get the output from this within ruby? If I run:

%x[progname -o 'something with spaces']

the single quotes get lost and the result is as if
"progname -o something with spaces" had been invoked.

Attempting to escape the quotes like:

%x[progname -o \'something with spaces\']

doesn't help. Can someone enlighten me on how this can be done?

>> %x[echo \'bla\']
=> "bla\n"
>> %x[echo \\'bla\\']
=> "'bla'\n"

Try it in irb and you will see what you get.

Regards, Sandor Szücs

···

On 23.01.2009, at 01:58, Will Parsons wrote:
--

Have you tried:

system("progname", "-o", "'something with spaces'")

or something similar?

-t3ch.dude

···

On Jan 22, 7:57 pm, Will Parsons <oud...@nodomain.invalid> wrote:

I'm having aprobleminvoking external programs from ruby that are passed
arguments containing spaces. I have a program that I would invoke outside
of ruby like:

progname -o 'something with spaces'

How do I get the output from this within ruby? If I run: