Forum: Ruby command interpretation

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Martin Krischik (Guest)
on 2007-05-07 14:46
(Received via mailing list)
Hallo,

I searched high and low to find how "command interpretation" actually
works. But all I found is [1]:

  `echo command interpretation with interpolation and backslashes`
  %x(echo command interpretation with interpolation and backslashes)

Now, this does not explain what kind of interpolation is done and more
importantly: How to switch interpolation off.

Background: I use ruby on the vms operating system and I want to run the
following test command:

  x = ´WRITE SYS$OUTPUT F$TRNLNM("SOURCE")´

But all I get is:

test.ruby:8: warning: parenthesize argument(s) for future version
test.ruby:8: parse error
  x = ´WRITE SYS$OUTPUT F$TRNLNM("SOURCE")´
                         ^
 From which I deduct that some "magic" is done with the $ character
which I don't want.

Martin
[1]
http://en.wikibooks.org/wiki/Ruby_Programming/Synt...
Robert K. (Guest)
on 2007-05-07 15:17
(Received via mailing list)
On 07.05.2007 12:43, Martin Krischik wrote:
>
>                         ^
>  From which I deduct that some "magic" is done with the $ character
> which I don't want.
>
> Martin
> [1]
> http://en.wikibooks.org/wiki/Ruby_Programming/Synt...

Use system with multiple arguments.  I think that should help.

  robert
Brian C. (Guest)
on 2007-05-07 17:40
(Received via mailing list)
On Mon, May 07, 2007 at 07:45:05PM +0900, Martin Krischik wrote:
>                         ^
> From which I deduct that some "magic" is done with the $ character
> which I don't want.

In the mail you sent, I saw character \264 (octal) where there should be
a
backtick. A backtick is \140 (octal), \x60 (hex), 96 (decimal)

Have you tried using %x(...) instead?
Ken B. (Guest)
on 2007-05-07 18:11
(Received via mailing list)
On Mon, 07 May 2007 12:43:19 +0200, Martin Krischik wrote:

>
>                          ^
>  From which I deduct that some "magic" is done with the $ character
> which I don't want.

What kind of quote is a ´ ? It doesn't work out to be a backquote when I
view it on my Linux system. Unlike perl and the shell, the $ isn't used
for any magic in Ruby strings. (The #{} syntax is used instead.) The
interpreter has decided to parse this as a function call within Ruby,
and
I'm guessing that's because your quotes aren't quotes.

--Ken
Martin Krischik (Guest)
on 2007-05-08 10:20
(Received via mailing list)
Brian C. schrieb:

>>  x = ´WRITE SYS$OUTPUT F$TRNLNM("SOURCE")´
>>                         ^
>> From which I deduct that some "magic" is done with the $ character
>> which I don't want.
>
> In the mail you sent, I saw character \264 (octal) where there should be a
> backtick. A backtick is \140 (octal), \x60 (hex), 96 (decimal)

Another good reason to retire back ticks.

> Have you tried using %x(...) instead?

Indeed that works - thanks!

Martin
This topic is locked and can not be replied to.