[go] 명령 실행 표준 입력 처리

Golang에서 외부 명령을 실행할 때 명령에 대한 표준 입력을 처리하는 것은 매우 유용합니다. 이 포스트에서는 Golang에서 명령을 실행하고 표준 입력을 처리하는 방법에 대해 알아보겠습니다.

명령 실행하기

Golang에서 외부 명령을 실행하기 위해서는 os/exec 패키지를 사용합니다. 아래는 간단한 예제 코드입니다.

package main

import (
	"fmt"
	"os/exec"
)

func main() {
	cmd := exec.Command("echo", "Hello, World!")
	out, err := cmd.Output()
	if err != nil {
		fmt.Println(err)
		return
	}
	fmt.Println(string(out))
}

위의 예제는 echo 명령을 실행하여 “Hello, World!”를 출력합니다.

표준 입력 처리하기

명령을 실행할 때 사용자 입력을 전달해야 하는 경우 cmd.Stdin을 사용하여 표준 입력을 처리할 수 있습니다. 아래는 사용자로부터 입력을 받아 grep 명령을 실행하는 예제 코드입니다.

package main

import (
	"bufio"
	"fmt"
	"os"
	"os/exec"
)

func main() {
	fmt.Print("Enter search keyword: ")
	scanner := bufio.NewScanner(os.Stdin)
	scanner.Scan()
	searchKeyword := scanner.Text()

	cmd := exec.Command("grep", searchKeyword)
	cmd.Stdin = os.Stdin
	cmd.Stdout = os.Stdout
	cmd.Stderr = os.Stderr
	cmd.Run()
}

위의 예제 코드는 사용자로부터 검색 키워드를 입력받아 grep 명령을 실행합니다.

결론

Golang에서 외부 명령을 실행하고 표준 입력을 처리하는 방법을 살펴보았습니다. os/exec 패키지를 사용하여 명령을 실행하고 표준 입력을 처리할 수 있으며, 이를 통해 다양한 유형의 외부 명령을 효과적으로 처리할 수 있습니다.

더 많은 정보를 원하신다면 os/exec 패키지 공식 문서를 참고하세요.