2013-07-16 15 views

cevap

21

Ruby, Perl aksine dolar işareti global değişken değil, bir dizede genişletmek için düz düzenli değişken gösterir. Bunu daha okunabilir cevap olduğunu düşünüyorum

irb(main):011:0> str = '\'howdy\'' 
=> "'howdy'" 
irb(main):012:0> `ruby -e "p #{str}"` 
=> "\"howdy\"\n" 
+0

Fedora makinesinde ruby ​​sürüm 1.8.7 kullanıyorum, yukarıdaki deyim çalışmaz. "" –

+0

çıktılar, script_dir değişkeninizin uygun değere sahip olduğundan emin oldunuz mu? – Bogatyr

+0

Ayrıca, -e argümanı tırnak içinde olmalı, düzenlenmiş olmalıdır. Aynı zamanda alıntılama konusunda da dikkatli olmalısınız, çünkü p 'nin argümanı tırnak içinde olması gerektiğine dair bir alıntıdır: script_dir =' \ 'foo \' – Bogatyr

13

Yakut string interpolation işleci çalışır:

p `ruby -e p "#{script_dir}"` 
+0

+1:

p 'ruby -e "p #{script_dir}"' 

Bir örnek: bir dize olarak, # {} yapısını kullanmak gerekir. – ngks

İlgili konular