[go] go 언어의 exec 패키지를 활용하여 운영체제 명령어 실행하기
Go 언어에서는 os/exec
패키지를 사용하여 운영체제 명령어를 실행하고 결과를 가져올 수 있습니다. 이 기능을 사용하면 Go 언어로 운영체제 명령어를 실행하고 그 결과를 프로그램에서 활용할 수 있습니다.
exec.Command 함수로 명령어 실행하기
exec.Command
함수를 사용하여 운영체제 명령어를 실행할 수 있습니다. 이 함수는 명령어의 이름과 옵션을 받아서 *exec.Cmd
구조체를 반환합니다. 명령어를 실행한 후 결과를 가져오거나 에러를 확인할 수 있습니다.
다음은 간단한 예제 코드입니다.
package main
import (
"fmt"
"os/exec"
)
func main() {
cmd := exec.Command("ls", "-l")
stdout, err := cmd.Output()
if err != nil {
fmt.Println(err)
return
}
fmt.Print(string(stdout))
}
이 예제는 ls -l
명령어를 실행하고 결과를 표준 출력으로 가져옵니다.
명령어 실행 시 파이프 사용하기
exec
패키지를 사용하여 명령어를 실행할 때 파이프(pipe)를 사용하여 명령어 간의 통신도 가능합니다. 이를 통해 명령어 간의 데이터 전달 및 처리가 가능합니다.
package main
import (
"fmt"
"os/exec"
)
func main() {
cmd1 := exec.Command("echo", "Hello")
cmd2 := exec.Command("grep", "Hello")
// cmd1의 표준 출력을 cmd2의 표준 입력으로 연결
cmd2.Stdin, _ = cmd1.StdoutPipe()
// cmd2의 표준 출력을 가져와서 출력
output, _ := cmd2.CombinedOutput()
fmt.Println(string(output))
}
마무리
Go 언어의 os/exec
패키지를 사용하면 간단하게 운영체제 명령어를 실행하고 결과를 가져올 수 있습니다. 이를 통해 Go 언어로 외부 프로그램과의 연동이 간편해지며, 유용한 기능을 구현할 수 있습니다.