>백엔드 개발 >Golang >내 Golang `exec.Command`가 '종료 상태 1'을 반환하는 이유는 무엇입니까?

내 Golang `exec.Command`가 '종료 상태 1'을 반환하는 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-24 04:45:19195검색

Why Does My Golang `exec.Command` Return

Golang의 exec.Command에서 "Exit Status 1" 오류의 원인을 찾는 방법

Golang에서 exec.Command 메소드를 실행할 때 , "종료 상태 1" 오류를 수신하는 것은 실망스러울 정도로 모호할 수 있습니다. 특정 정보가 없으면 효과적인 디버깅이 방해됩니다.

더 자세한 정보를 검색하려면 Command 개체의 Stderr 속성을 활용하세요. 이는 다음과 같이 수행됩니다.

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

오류를 stderr 버퍼로 리디렉션하면 명령 실패 시 오류에 액세스할 수 있습니다.

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

경우에 따라 출력은 다음과 같습니다. stdout과 stderr 모두에 표시됩니다. 아래 예와 같이 명령이 0이 아닌 오류 코드를 반환하는 경우:

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

오류 메시지는 다음과 같습니다.

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

일반적으로 stderr은 오류가 있는 경우 일부 명령은 오류 코드를 반환하지 않고 stdout 또는 stderr의 오류를 인쇄합니다. 따라서 특정 명령을 수용하도록 코드를 조정해야 할 수도 있습니다.

위 내용은 내 Golang `exec.Command`가 '종료 상태 1'을 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.