Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa `exec.Command` Golang Saya Mengembalikan 'Keluar Status 1'?

Mengapa `exec.Command` Golang Saya Mengembalikan 'Keluar Status 1'?

Susan Sarandon
Susan Sarandonasal
2024-11-24 04:45:19176semak imbas

Why Does My Golang `exec.Command` Return

Cara Mengenalpasti Punca Ralat "Keluar Status 1" dalam eksekutif Golang.Arahan

Apabila melaksanakan kaedah exec.Command di Golang , menerima ralat "status keluar 1" boleh menjadi sangat mengecewakan. Ketiadaan maklumat khusus menghalang penyahpepijatan yang berkesan.

Untuk mendapatkan maklumat yang lebih terperinci, manfaatkan sifat Stderr bagi objek Perintah. Ini dicapai dengan:

var out bytes.Buffer
var stderr bytes.Buffer
cmd.Stdout = &out
cmd.Stderr = &stderr
err := cmd.Run()

Dengan mengubah hala ralat ke penimbal stderr, anda boleh mengaksesnya sekiranya berlaku kegagalan arahan.

if err != nil {
    fmt.Println(fmt.Sprint(err) + ": " + stderr.String())
    return
}

Dalam sesetengah kes, output ialah dipaparkan dalam kedua-dua stdout dan stderr. Jika arahan itu mengembalikan kod ralat bukan sifar, seperti dalam contoh di bawah:

cmd := exec.Command("find", "/", "-maxdepth", "1", "-exec", "wc", "-c", "{}", "\")

Mesej ralat ialah:

exit status 1: find: -exec: no terminating ";" or "+"

Adalah penting untuk ambil perhatian bahawa walaupun stderr biasanya menunjukkan ralat, beberapa arahan mencetak ralat dalam stdout atau dalam stderr tanpa mengembalikan kod ralat. Oleh itu, mungkin perlu melaraskan kod anda untuk menampung arahan tertentu.

Atas ialah kandungan terperinci Mengapa `exec.Command` Golang Saya Mengembalikan 'Keluar Status 1'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn