मान लें कि मैं एक कार्यक्रम में 'ls' चलाने के लिए चाहता हूं, और परिणामों को एक स्ट्रिंग में संग्रहीत करना चाहता हूं। निष्पादन और ओएस पैकेज में कांटा प्रक्रियाओं के लिए कुछ कमांड प्रतीत होते हैं, लेकिन उन्हें stdout, आदि के लिए फ़ाइल तर्क की आवश्यकता होती है। क्या आउटपुट को स्ट्रिंग के रूप में प्राप्त करने का कोई तरीका है?आप गो में सिस्टम कमांड का आउटपुट कैसे प्राप्त करते हैं?
उत्तर
उपयोग exec.Run stdout के रूप में Pipe को निर्दिष्ट (और stderr अगर आप चाहते हैं) द्वारा। यह cmd वापस करेगा, जिसमें Stdout (और Stderr) फ़ील्ड में os.File शामिल है। फिर आप उदाहरण के लिए ioutil.ReadAll का उपयोग कर इसे पढ़ सकते हैं।
उदाहरण:
package main
import (
"fmt"
"log"
"os/exec"
)
func main() {
out, err := exec.Command("date").Output()
if err != nil {
log.Fatal(err)
}
fmt.Printf("The date is %s\n", out)
}
out
कहाँ standart उत्पादन होता है:
package main
import (
"exec";
"io/ioutil";
)
func main() {
if cmd, e := exec.Run("/bin/ls", nil, nil, exec.DevNull, exec.Pipe, exec.MergeWithStdout); e == nil {
b, _ := ioutil.ReadAll(cmd.Stdout)
println("output: " + string(b))
}
}
दो विकल्प, प्रतिमान के आधार पर आप पसंद करते हैं:
अब एक आसान तरीका है। यह प्रारूप []byte
में है, लेकिन आप आसानी से स्ट्रिंग के लिए इसे बदल सकते हैं साथ:
string(out)
तुम भी Output()
जो मानक आउटपुट और मानक त्रुटि देता है के बजाय CombinedOutput()
उपयोग कर सकते हैं।
यह सबसे अधिक स्वीकार्य उत्तर अब होना चाहिए। स्वीकृत उत्तर अब भी संकलित नहीं होता है। –
दोनों stdout हो और अलग तार में stderr करने के लिए, तुम इतनी तरह बाइट बफ़र्स उपयोग कर सकते हैं:
cmd := exec.Command("date")
var outb, errb bytes.Buffer
cmd.Stdout = &outb
cmd.Stderr = &errb
err := cmd.Run()
if err != nil {
log.Fatal(err)
}
fmt.Println("out:", outb.String(), "err:", errb.String())
- 1. आप सिस्टम एकीकरण कैसे करते हैं?
- 2. आप cout का उपयोग करके \ प्रतीक कैसे आउटपुट करते हैं?
- 3. आप अपने समाधान/सिस्टम का वर्णन कैसे करते हैं?
- 4. एनएसआईएस में कमांड आउटपुट कैसे प्राप्त करें?
- 5. रुबी में "सिस्टम" कमांड से वापसी आउटपुट?
- 6. आप लिंकपैड में कमांड टाइमआउट कैसे सेट करते हैं?
- 7. आप शेल लाइन-दर-लाइन में कमांड के आउटपुट को कैसे संसाधित करते हैं?
- 8. आप एसएसआईएस में कमांड टाइमआउट कैसे सेट करते हैं?
- 9. सी: सिस्टम कमांड चलाएं और आउटपुट प्राप्त करें?
- 10. क्यूटी में सिस्टम डिफ़ॉल्ट फ़ॉन्ट सेटिंग्स कैसे प्राप्त करते हैं?
- 11. क्या यूनिक्स कमांड रंगीन आउटपुट का समर्थन करते हैं?
- 12. सिस्टम कमांड के आउटपुट को वैरिएबल
- 13. गो/सीजीओ - आप एक संकेतक के रूप में पारित सी सरणी का उपयोग कैसे करते हैं
- 14. पर्ल में बाहरी कमांड का आउटपुट कैसे प्राप्त करूं?
- 15. आप जेएसटीएल का उपयोग कैसे करते हैं?
- 16. आप गो में फ़ंक्शन कैसे करते हैं और अपने रनटाइम को मिलीसेकंड में वापस कैसे करते हैं?
- 17. आप एक क्रिया का भूतकाल कैसे प्राप्त करते हैं?
- 18. आप PowerShell का उपयोग कैसे करते हैं?
- 19. आप टीडीडी के साथ जटिल सिस्टम कैसे डिजाइन करते हैं?
- 20. आप .NET कॉम्पैक्ट फ्रेमवर्क में डिफ़ॉल्ट सिस्टम फ़ॉन्ट कैसे प्राप्त करते हैं?
- 21. आप एक एम्बेडेड सिस्टम के लिए एक सीरियल कमांड प्रोटोकॉल कैसे डिज़ाइन करते हैं?
- 22. Eclipselink: आप प्रत्येक बंडल में EntityManager कैसे प्राप्त करते हैं?
- 23. आप फ़ाइल आकार को सी # में कैसे प्राप्त करते हैं?
- 24. Magento में आप डेटाबेस नाम कैसे प्राप्त करते हैं?
- 25. आप .text सेक्शन में पॉइंटर कैसे प्राप्त करते हैं?
- 26. आप इवेंटमैचिन कार्यान्वयन में अपवाद कैसे प्राप्त करते हैं?
- 27. आप PHP में 'रेफरर' हेडर कैसे प्राप्त करते हैं?
- 28. गो में कई कमांड कैसे पाइप करें?
- 29. आप svn diff में पेजर कैसे प्राप्त करते हैं?
- 30. आप ASP.Net में फ़ील्ड स्तरीय सुरक्षा कैसे प्राप्त करते हैं?
मुझे नहीं लगता कि "exec" पैकेज अब मौजूद है। मुझे नीचे "Fsh द्वारा सूचीबद्ध" ओएस/exec "का उपयोग करना पड़ा। –