如何替換反引號運算符中的變量值?替換反引號運算符中的變量值
script_dir = File.expand_path File.dirname(__FILE__)
p `ruby -e p "$script_dir"` # this does not work
如何替換反引號運算符中的變量值?替換反引號運算符中的變量值
script_dir = File.expand_path File.dirname(__FILE__)
p `ruby -e p "$script_dir"` # this does not work
在Ruby,Perl的不同,美元符號表示全局變量,而不是一個普通的常規變量字符串中的擴大。在一個字符串,你需要使用#{}結構:
p `ruby -e "p #{script_dir}"`
一個例子:
irb(main):011:0> str = '\'howdy\''
=> "'howdy'"
irb(main):012:0> `ruby -e "p #{str}"`
=> "\"howdy\"\n"
我在Fedora機器上使用ruby 1.8.7版本,上面的語句不起作用。它輸出「」 –
你確定你的script_dir變量具有適當的值嗎? – Bogatyr
另外,-e的參數必須在引號中,進行編輯。你還必須小心引用,因爲p的參數必須在引號中,它是一個字符串文字:script_dir ='\'foo \'' – Bogatyr