Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Mendapatkan Kod Keluar dari Perintah Sistem dalam Go?

Bagaimana untuk Mendapatkan Kod Keluar dari Perintah Sistem dalam Go?

Patricia Arquette
Patricia Arquetteasal
2024-12-19 07:59:32168semak imbas

How to Retrieve the Exit Code of a System Command in Go?

Cara Mendapatkan Kod Keluar Menggunakan Go

Dalam Go, pakej os/exec menyediakan cara untuk melaksanakan arahan sistem. Walau bagaimanapun, mendapatkan semula kod keluar menimbulkan cabaran.

Dapatkan Kod Keluar semasa Berjaya

Apabila arahan keluar dengan kod keluar 0, fungsi cmd.Wait() kembali tiada.

Dapatkan Kod Keluar apabila Kegagalan (untuk Linux Sahaja)

Untuk sistem Linux, coretan kod berikut menunjukkan cara mendapatkan kod keluar apabila arahan gagal:

import (
    "fmt"
    "log"
    "os/exec"
    "syscall"
)

func main() {
    cmd := exec.Command("git", "blub")

    if err := cmd.Start(); err != nil {
        log.Fatalf("cmd.Start: %v", err)
    }

    if err := cmd.Wait(); err != nil {
        if exiterr, ok := err.(*exec.ExitError); ok {
            fmt.Printf("Exit Status: %d", exiterr.ExitCode())
        } else {
            log.Fatalf("cmd.Wait: %v", err)
        }
    }
}

Tiada Pendekatan Merentas Platform

Malangnya, tiada kaedah merentas platform untuk mendapatkan semula kod keluar apabila gagal. API os/exec tidak mempunyai fungsi ini mengikut reka bentuk.

Sumber Tambahan

Artikel komprehensif ini menghuraikan topik ini dan menyediakan butiran teknikal tambahan: http://golang. org/pkg/os/exec/

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Kod Keluar dari Perintah Sistem dalam Go?. 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