명령을 실행할 때 표준 출력 (STDOUT) 만 캡처합니다. 보다 자세한 오류 메시지를 검색하려면 exec.command struct의 Stderr 속성을 활용할 수 있습니다. cmd : = exec.command ( "find", "/", "-maxdepth", "1", "-exec", "wc", "-c", "{}", "\\") 바이트 아웃 바이트 .buffer var stderr bytes.buffer cmd.stdout = & out cmd.stderr = & stderr
이제 명령이 실행되고 오류가 발생하면 오류 메시지는 일반적인 "종료 상태 1 대신 stderr 버퍼에 기록됩니다." exec.command ( "find", "/", "-maxdepth", "1", "-exec", "wc", "-c", "{}", "\\") 바이트 아웃 바이트 .buffer var stderr bytes.buffer cmd.stdout = & out cmd.stderr = & stderr err : = cmd.run () err! = nil {인 경우 fmt.println (fmt.sprint (err) ":"stderr.string ()) 반품 } fmt.println ( "result :"out.string ())
cmd := exec.Command("find", "/", "-maxdepth", "1", "-exec", "wc", "-c", "{}", "\\") var out bytes.Buffer var stderr bytes.Buffer cmd.Stdout = &out cmd.Stderr = &stderr
추가 고려 사항
일부 명령은 Stderr에 오류를 쓰는 규칙을 준수하지 않을 수 있다는 점에 주목할 가치가 있습니다. 일부 명령은 stdout에 오류를 인쇄 할 수있는 반면, 다른 명령은 Stderr에 오류를 인쇄 할 수 있지만 여전히 성공적인 종료 상태를 반환 할 수 있습니다 (0). 따라서 실행중인 특정 명령에 맞게 코드를 조정해야 할 수도 있습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3