stdin을 통해 외부 프로그램에 사용자 자격 증명 입력
외부 명령을 실행하고 프로그램 내에서 사용자 자격 증명을 제공하려는 시나리오를 고려하십시오. 프로그램을 가세요. 이 명령은 별도의 필드에 사용자 이름과 비밀번호를 입력하라는 메시지를 표시합니다. stdin을 사용하여 이러한 필드를 순차적으로 채우는 방법을 결정하는 것은 어려울 수 있습니다.
해결책: bytes.Buffer 활용
이 문제를 해결하려면 bytes.Buffer 유형을 활용하세요. 이를 통해 바이트 데이터를 쓰고 읽기 위한 버퍼를 생성할 수 있습니다. 다음 단계를 따르세요.
예제 코드:
<code class="go">login := exec.Command(cmd, "login") var b bytes.Buffer b.Write([]byte(username + "\n" + pwd + "\n")) login.Stdout = os.Stdout login.Stdin = &b login.Stderr = os.Stderr err := login.Run() if err != nil { fmt.Fprintln(os.Stderr, err) }</code>
이 접근 방식은 stdin이 문자를 만날 때까지 문자를 읽는다는 점을 활용합니다. 개행. 버퍼를 stdin에 공급함으로써 명령은 모호함 없이 자격 증명을 순차적으로 읽습니다.
위 내용은 Go에서 Stdin을 통해 외부 프로그램에 사용자 자격 증명을 입력하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!