2009-09-17 23 views
17

मैं sh का उपयोग कर कमांड चला रहा हूं और उस कमांड के आउटपुट को पढ़ने की जरूरत है। जैसेरेक शेक का उपयोग करते समय मैं अपने आदेश का आउटपुट कैसे प्राप्त कर सकता हूं?

श "Whoami"

लेकिन एसएच केवल एक स्ट्रिंग Whoami आदेश के उत्पादन युक्त बजाय सही वापस जाने के लिए लगता है। क्या किसी को समाधान का पता है?

output = `whoami` 

परिणाम 'उत्पादन' चर में होगा:

उत्तर

5

बस बयान निष्पादित करने के लिए backquotes का उपयोग करें।

14

वहाँ कई तरीके हैं:

output = `whoami` 

#or 

output = %x[whoami] 

# or using 'system' but in case of errors it's gonna return false 

output = system "whoami" 
+0

उल्लेख के लिए धन्यवाद 'प्रणाली "व्हामी" - मैं उस आदेश की गूंज-पीठ को दबाने का एक तरीका ढूंढ रहा था, जो 'sh "diff ab' 'उत्पन्न करता है, और' सिस्टम" diff ab "'चाल करता है। – bjnord

1

मुझे यकीन है कि त्रुटि पर विफल उन अन्य तरीकों पाने के लिए नहीं था, इसलिए मैं पुनर्निर्देशन साथ चला गया:

sh "mysql --verbose #{connection_options} < #{sql_file} > #{sql_file_output_file}" do |ok, status| 
    ok or fail "mysql file failed [#{sql_file}" 
end 
संबंधित मुद्दे

 संबंधित मुद्दे