[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

command interpretation

Martin Krischik

5/7/2007 10:43:00 AM

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/Syntax/Literals#Int...
--
Martin Krischik
4 Answers

Robert Klemme

5/7/2007 11:12:00 AM

0

On 07.05.2007 12:43, Martin Krischik wrote:
> 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/Syntax/Literals#Int...

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

robert

Brian Candler

5/7/2007 1:39:00 PM

0

On Mon, May 07, 2007 at 07:45:05PM +0900, Martin Krischik wrote:
> 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.

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 Bloom

5/7/2007 2:08:00 PM

0

On Mon, 07 May 2007 12:43:19 +0200, Martin Krischik wrote:

> 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.

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

--
Ken Bloom. PhD candidate. Linguistic Cognition Laboratory.
Department of Computer Science. Illinois Institute of Technology.
http://www.iit.edu...

Martin Krischik

5/8/2007 6:18:00 AM

0

Brian Candler schrieb:

> On Mon, May 07, 2007 at 07:45:05PM +0900, Martin Krischik wrote:
>> 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.
>
> 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
--
Martin Krischik