के अंदर चर के मान को कम करना मैं बैकटिक ऑपरेटर के अंदर एक चर के मूल्य को कैसे प्रतिस्थापित कर सकता हूं?बैकटिक ऑपरेटर
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
रूबी में, पर्ल के विपरीत, डॉलर चिह्न एक वैश्विक चर, नहीं एक स्ट्रिंग में विस्तार करने के लिए एक सादे नियमित चर इंगित करता है।
p `ruby -e "p #{script_dir}"`
एक उदाहरण::
irb(main):011:0> str = '\'howdy\''
=> "'howdy'"
irb(main):012:0> `ruby -e "p #{str}"`
=> "\"howdy\"\n"
रूबी string interpolation बैकटिक ऑपरेटर के साथ काम करता है:
p `ruby -e p "#{script_dir}"`
+1 मुझे लगता है कि यह अधिक पठनीय जवाब है एक स्ट्रिंग में, आप # {} निर्माण प्रयोग करना होगा। – ngks
मैं फेडोरा मशीन पर रूबी संस्करण 1.8.7 का उपयोग कर रहा हूं, उपर्युक्त कथन काम नहीं करता है। यह –
आउटपुट करता है क्या आपने सुनिश्चित किया है कि आपकी script_dir चर का उचित मूल्य है? – Bogatyr
इसके अलावा, तर्क - उद्धरण में होना चाहिए, संपादित किया जाना चाहिए। आपको उद्धरण के बारे में भी सावधान रहना होगा, क्योंकि पी को तर्क उद्धरण में होना चाहिए क्योंकि यह एक स्ट्रिंग अक्षर है: script_dir = '\' foo \ '' – Bogatyr