# Command interpretation

**URL:** <https://www.ruby-forum.com/t/command-interpretation/103510>\
**Category:** Ruby\
**Created:** [May 7, 2007, 12:46pm UTC](https://www.ruby-forum.com/t/command-interpretation/103510 "2007-05-07T12:46:52Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Martin\_Krischik](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/8c91f0/32.png) [@Martin\_Krischik](https://www.ruby-forum.com/u/Martin_Krischik)\
**Post date:** [May 7, 2007, 12:46pm UTC](https://www.ruby-forum.com/t/command-interpretation/103510/1 "2007-05-07T12:46:52Z")

</div>

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#Interpolation](http://en.wikibooks.org/wiki/Ruby_Programming/Syntax/Literals#Interpolation)

---

<div class="post-metadata">

**Author:** ![Martin\_Krischik](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/8c91f0/32.png) [@Martin\_Krischik](https://www.ruby-forum.com/u/Martin_Krischik)\
**Post date:** [May 7, 2007, 1:17pm UTC](https://www.ruby-forum.com/t/command-interpretation/103510/2 "2007-05-07T13:17:55Z")

</div>

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/Syntax/Literals#Interpolation](http://en.wikibooks.org/wiki/Ruby_Programming/Syntax/Literals#Interpolation)

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

robert

---

<div class="post-metadata">

**Author:** ![Martin\_Krischik](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/8c91f0/32.png) [@Martin\_Krischik](https://www.ruby-forum.com/u/Martin_Krischik)\
**Post date:** [May 7, 2007, 3:40pm UTC](https://www.ruby-forum.com/t/command-interpretation/103510/3 "2007-05-07T15:40:11Z")

</div>

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?

---

<div class="post-metadata">

**Author:** ![Martin\_Krischik](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/8c91f0/32.png) [@Martin\_Krischik](https://www.ruby-forum.com/u/Martin_Krischik)\
**Post date:** [May 7, 2007, 4:11pm UTC](https://www.ruby-forum.com/t/command-interpretation/103510/4 "2007-05-07T16:11:14Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Martin\_Krischik](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/8c91f0/32.png) [@Martin\_Krischik](https://www.ruby-forum.com/u/Martin_Krischik)\
**Post date:** [May 8, 2007, 8:20am UTC](https://www.ruby-forum.com/t/command-interpretation/103510/5 "2007-05-08T08:20:48Z")

</div>

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
