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 중국어 웹사이트의 기타 관련 기사를 참조하세요!