Go - 여러 입력 필드가 있는 외부 명령용 Stdin에 쓰기
Go 프로그램에서 외부 명령을 실행할 때 다음이 필요할 수 있습니다. 명령의 표준 입력(stdin)에 입력을 제공합니다. 그러나 외부 명령에 여러 입력 필드가 필요한 경우 가장 효율적이고 안정적인 방식으로 입력 필드를 제공하는 방법을 결정하는 것이 어려울 수 있습니다.
제공된 예에서는 로그인 명령이 실행되어 사용자를 기대합니다. 사용자 이름과 비밀번호라는 두 필드를 수동으로 입력합니다. 프로그래밍 방식으로 이러한 입력을 제공하기 위해 바이트 버퍼를 사용할 수 있습니다.
Go의 bytes.Buffer 유형은 메모리에서 일련의 바이트를 보유하고 조작하는 데 사용할 수 있습니다. 사용자 이름과 비밀번호를 버퍼에 쓴 다음 login.Stdin 필드를 버퍼에 설정하면 사용자 상호 작용 없이 명령에 입력을 제공할 수 있습니다.
이 접근 방식을 보여주는 코드 조각:
<code class="go">import ( "bytes" "fmt" "os" "os/exec" ) func main() { cmd := "login" // Prepare the byte buffer with username and password var b bytes.Buffer username := "exampleUsername" password := "examplePassword" b.Write([]byte(fmt.Sprintf("%s\n%s\n", username, password))) // Execute the command with stdin set to the buffer login := exec.Command(cmd) login.Stdin = &b login.Stdout = os.Stdout login.Stderr = os.Stderr err := login.Run() if err != nil { fmt.Fprintln(os.Stderr, err) } }</code>
이 기술을 사용하면 Go 프로그램이 외부 명령에 필요한 입력을 자동으로 제공하여 실행 프로세스를 간소화하고 사용자가 수동으로 입력할 필요가 없습니다.
위 내용은 Go에서 외부 명령에 여러 입력 필드를 제공하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!