Go에서 exe.Command 실행시 Output의 내용이 짤려서 표시될때

chacha·2020년 4월 10일
0

개발기술 정리

목록 보기
6/9

GO에서 exec.Command를 사용할 경우 대부분 output을 정상적으로 받을 수 있다. 하지만, 일부 솔루션 docker exec의 경우는 결과가 잘 받아지지 않는다. 이럴때 아래 처럼 처리해 줄 경우 결과를 끝까지 받아 준다.

func runCommand(name string, arg ...string) string {	
	cmd := exec.Command(name, arg...)
	stdin, err := cmd.StdinPipe()
	if err != nil {
		log.Panic(err)
	}

	go func() {
		defer stdin.Close()
		_, _ = io.WriteString(stdin, "values written to stdin are passed to cmd's standard input")
	}()

	out, err := cmd.CombinedOutput()
	if err != nil {		
		fmt.Println("error", err)		
	}

	fmt.Println(string(out))
	
	return string(out)
}
profile
안녕하세요~ :)

0개의 댓글