मेरे पास एक बैश स्क्रिप्ट है जिसे आंतरिक रूप से रूबी स्क्रिप्ट कहा जाता है, स्थिति के आधार पर कभी-कभी रूबी स्क्रिप्ट उपयोगकर्ता के चयन के लिए संकेत देगा; मैं इसे कैसे संभव कर सकता हूं?
मुख्य बैश स्क्रिप्ट:
#!/usr/bash
for host_name in `./myruby.rb -a xxx -b xxx`
do
echo -e "$host_name"
done
आवरण myruby.rb
#!/usr/bin/ruby
.....
......
puts "enter your selection ?"
user_selection = $stdin.gets
अगर मैं रूबी को सीधे चलाता हूं, तो यह ठीक काम कर रहा है, लेकिन जब मैं इसे बैश से चलाता हूं, तो यह उपयोगकर्ता इनपुट के लिए संकेत नहीं दे रहा है; बल्कि यह लटका हुआ है।
उत्तर:
उत्तर № 1 के लिए 1रूबी स्क्रिप्ट स्टड से पढ़ती है, इसलिए आपको बैश से बुलाए जाने पर भी स्टड पर कुछ प्रदान करना होगा। आप इसे इस तरह से कर सकते हैं:
$(rubyscript <<< "selection")
$ () निर्माण बैकटिक्स के समान है <<< रूबस्क्रिप्ट के लिए स्टिंग पर इनपुट के रूप में स्ट्रिंग "चयन" प्रदान करता है।
या आप बस जवाब टाइप कर सकते हैं जब बैश स्क्रिप्ट "हैंग"