본문 바로가기
개발의 정석/언어

[#golang] 소스코드에서 커맨드 실행하기

by 발자개발 2020. 3. 26.

 

 

 

golang 안에서 git clone 또는 git pull을 하는 등 직접 커맨드를 실행해야 하는 경우가 많다.

이번 포스팅에선 golang 안에서 직접 커맨드를 실행하는 방법에 대해서 알아보자

 

예를들면 워킹 디렉토리(working directory) /test/workspace 안에서 ls -a 를 실행하는 커맨드를 입력한다고 하면 아래와 같은 방식으로 사용할 수 있다. 

import (
	"os/exec"
)

cmd := exec.Command("ls", "-a")
cmd.Dir = "/test/workspace"

output, err := cmd.Output()

if err != nil {
	fmt.Println(err)
} else {
	fmt.Println(string(output))
}

 

지원하지 않는 시스템 함수를 호출 할 때나 외부 바이너리 실행 결과를 가져와야할 때 자주 애용한다. 최근에는 주기적으로 데이터 긁어 저장한 뒤, git에 자동 푸시해 알아서 자동 갱신되는 github pages를 만들때 사용했다.

 

 

 

댓글