[go] 명령 실행 표준 출력 처리
Golang 프로그램에서 외부 명령을 실행하고 해당 명령의 표준 출력을 처리해야 할 때가 있습니다. 이를 위해 다음과 같은 방법을 사용할 수 있습니다.
명령 실행
os/exec
패키지를 사용하여 외부 명령을 실행할 수 있습니다.
package main
import (
"fmt"
"os/exec"
)
func main() {
cmd := exec.Command("ls", "-l")
err := cmd.Run()
if err != nil {
fmt.Println(err)
}
}
위의 예제에서는 ls -l
명령을 실행하고 있습니다.
표준 출력 처리
외부 명령의 표준 출력을 처리하려면 Cmd
구조체의 Stdout
필드를 사용해야 합니다.
package main
import (
"fmt"
"os/exec"
)
func main() {
cmd := exec.Command("ls", "-l")
stdout, err := cmd.StdoutPipe()
if err != nil {
fmt.Println(err)
return
}
err = cmd.Start()
if err != nil {
fmt.Println(err)
return
}
output := make([]byte, 30)
n, err := stdout.Read(output)
if err != nil {
fmt.Println(err)
return
}
fmt.Printf("표준 출력: %s\n", output[:n])
}
위의 예제에서는 ls -l
명령의 표준 출력을 읽어오고 있습니다.
이렇게 함으로써 Golang에서 외부 명령을 실행하고 표준 출력을 처리할 수 있습니다.