[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
를 사용하여 표준 에러를 처리할 수 있습니다.
참고 자료
위의 예제와 해당 문서를 참고하여 자세한 내용을 확인할 수 있습니다.