[go] 명령 실행 입력 파이프
Go 프로그램에서 명령을 실행하고 입력을 파이프하는 방법에 대해 알아보겠습니다.
명령 실행
Go 언어에서 외부 명령을 실행하려면 os/exec
패키지를 사용합니다. 아래는 간단한 예시입니다.
package main
import (
"fmt"
"os/exec"
)
func main() {
cmd := exec.Command("echo", "Hello, Go!")
stdout, err := cmd.Output()
if err != nil {
fmt.Println(err.Error())
return
}
fmt.Println(string(stdout))
}
입력 파이프
외부 명령에 입력을 파이프하려면 os/exec
를 사용하고 StdinPipe()
메서드를 호출합니다.
package main
import (
"fmt"
"io"
"os/exec"
)
func main() {
cmd := exec.Command("grep", "hello")
stdin, _ := cmd.StdinPipe()
defer stdin.Close()
io.WriteString(stdin, "hello world\nfoo hello\nbar\n")
output, _ := cmd.CombinedOutput()
fmt.Printf("%s", output)
}
입력을 파이프하고 CombinedOutput()
메서드로 출력을 얻습니다.
이제 Go를 사용하여 명령 실행과 입력 파이프를 수행하는 방법을 알았습니다!
이제 Go 프로그램에서 명령을 실행하고 입력을 파이프하는 방법에 대해 알게 되셨습니다.