S: Perintah Paip Gagal dengan Status Keluar 1
Apabila cuba menghantar arahan menggunakan exec.Command(), ralat berikut berlaku:
ps, "cax | grep myapp"
Mengapa arahan ini gagal semasa ps cax berfungsi?
A: Idiomatic Piping with exec.Command()
Lulus keseluruhan arahan untuk bash boleh menyelesaikan masalah itu, tetapi ada yang lebih idiomatik penyelesaian:
Kod Contoh:
package main import ( "fmt" "os/exec" ) func main() { grep := exec.Command("grep", "redis") ps := exec.Command("ps", "cax") // Connect ps's stdout to grep's stdin. pipe, _ := ps.StdoutPipe() defer pipe.Close() grep.Stdin = pipe // Run ps first. ps.Start() // Run and get the output of grep. res, _ := grep.Output() fmt.Println(string(res)) }
Penjelasan:
Atas ialah kandungan terperinci Mengapa Perintah Paip dalam `exec.Command()` Go Gagal dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!