[go] go 언어의 exec 패키지를 사용하여 외부 프로그램 실행 후 결과값 가져오기

Go 언어를 사용하여 외부 프로그램을 실행하고 결과값을 가져오기 위해 os/exec 패키지를 사용할 수 있습니다. 이 패키지는 외부 명령어를 실행하고 결과를 읽어올 수 있는 기능을 제공합니다.

Exec 패키지 사용하기

예를 들어, ls 명령어를 실행하여 현재 디렉토리의 파일 리스트를 가져오는 방법을 보겠습니다.

package main

import (
	"bytes"
	"fmt"
	"os/exec"
)

func main() {
	cmd := exec.Command("ls")
	var out bytes.Buffer
	cmd.Stdout = &out
	err := cmd.Run()
	if err != nil {
		fmt.Println(err)
	}
	fmt.Println(out.String())
}

이 코드에서 exec.Command 함수를 사용하여 ls 명령어를 실행하고, cmd.Stdout을 설정하여 결과값을 out 버퍼에 저장합니다. cmd.Run()을 호출하여 외부 명령어를 실행하고 결과를 out에 저장한 뒤, 결과값을 출력합니다.

다른 프로그램 실행 및 결과값 가져오기

위의 예제와 비슷한 방법으로 다른 외부 프로그램을 실행하고 결과값을 가져올 수 있습니다. 필요에 따라 실행할 명령어와 인수를 설정하고, 결과값을 적절한 방식으로 처리할 수 있습니다.

Exec 패키지를 사용하여 외부 프로그램을 실행하고 결과값을 가져오는 것은 Go 언어에서 자주 사용되는 기능 중 하나이며, 이를 통해 강력한 외부 프로그램 통합을 구현할 수 있습니다.

위의 예제는 단순한 예시로, 더 복잡한 상황에서는 에러 처리와 보안 등을 고려해야 합니다. 필요에 따라서는 cmd.Stderr를 사용하여 표준 에러를 처리할 수 있습니다.

참고 자료

위의 예제와 해당 문서를 참고하여 자세한 내용을 확인할 수 있습니다.