# Problem using back-ticks + eval

**URL:** <https://www.ruby-forum.com/t/problem-using-back-ticks-eval/83399>\
**Category:** Ruby\
**Created:** [January 25, 2007, 7:40pm UTC](https://www.ruby-forum.com/t/problem-using-back-ticks-eval/83399 "2007-01-25T19:40:39Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![richard](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/f0a364/32.png) [@richard](https://www.ruby-forum.com/u/richard)\
**Post date:** [January 25, 2007, 7:40pm UTC](https://www.ruby-forum.com/t/problem-using-back-ticks-eval/83399/1 "2007-01-25T19:40:39Z")

</div>

Hi,

I’m trying to demo how Ruby handles various argument formats.

For example, I write the statement:  
show %@`ruby DisplayArgs.rb Arg1 Arg2`@

and I get the output:  
`ruby DisplayArgs.rb Arg1 Arg2`  
=\>  
Arg[1]: “Arg1”  
Arg[2]: “Arg2”

I’d like avoid having the back-ticks appear in the output. I’d like to  
achieve this by moving the back-ticks from show invocation to show’s  
definition. In the following code, comments indicate what I tried, but  
it failed.

Any ideas?

Thanks in Advance,  
Richard

# ShowCmdLineArgs.rb

def show(stmt)  
print stmt  
puts "\n=\> "  
eval("puts " + stmt).inspect # Put  
back-ticks around “stmt”?  
puts  
end

puts “\n========= Examples =========”  
show %@`ruby DisplayArgs.rb Arg1 Arg2`@  
show %@`ruby DisplayArgs.rb "Embedded "" quotes"`@ # Remove back-ticks  
from this?

# DisplayArgs.rb

MAXARGS = 10  
puts “No arguments” unless ARGV[0]  
(0…MAXARGS).each { |i|  
break unless ARGV[i]  
print "Arg[#{(i+1).to\_s}]: "  
puts ARGV[i].inspect  
puts “Quitting without inspecting addition arguments,  
if any!” if i == MAXARGS-1  
}

---

<div class="post-metadata">

**Author:** ![richard](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/f0a364/32.png) [@richard](https://www.ruby-forum.com/u/richard)\
**Post date:** [January 25, 2007, 7:45pm UTC](https://www.ruby-forum.com/t/problem-using-back-ticks-eval/83399/2 "2007-01-25T19:45:40Z")

</div>

On Jan 25, 2007, at 10:40, Richard wrote:

> I’d like avoid having the back-ticks appear in the output.

def show(command)  
puts command  
puts ‘=\>’  
puts `#{command}`  
end

–  
Eric H. - removed\_email\_address@domain.invalid - [http://blog.segment7.net](http://blog.segment7.net)

I LIT YOUR GEM ON FIRE!

---

<div class="post-metadata">

**Author:** ![richard](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/f0a364/32.png) [@richard](https://www.ruby-forum.com/u/richard)\
**Post date:** [January 25, 2007, 8:25pm UTC](https://www.ruby-forum.com/t/problem-using-back-ticks-eval/83399/3 "2007-01-25T20:25:54Z")

</div>

Hi Erik,

I was working in making “show” simpler, but I couldn’t come up with  
that last step. Beautiful.

Many thanks,  
Richard
