"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 내 Golang `exec.Command`가 "종료 상태 1"을 반환하는 이유는 무엇입니까?

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

2024년 11월 17일에 게시됨
검색:495

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의 오류를 인쇄한다는 점에 유의하는 것이 중요합니다. 따라서 특정 명령을 수용하도록 코드를 조정해야 할 수도 있습니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3