Harici bir komut yürüten ve kullanıcı girişini bekleyen iki alana konsol çıkışı veren aşağıdaki kod var. Kullanıcı adı ve parola için bir tane daha sonra el ile ekledim.Git - harici komutta stdin'e yaz
Bu girdileri programın içinden girmek için stdin'e nasıl yazılacağı konusunda bana bir ipucu verebilir misiniz?
Benim için hile parçası, giriş için beklemede iki farklı alan var ve birbiri ardına nasıl doldurulacağını bulmakta güçlük çekiyorum.
login := exec.Command(cmd, "login")
login.Stdout = os.Stdout
login.Stdin = os.Stdin
login.Stderr = os.Stderr
err := login.Run()
if err != nil {
fmt.Fprintln(os.Stderr, err)
}
ÇÖZÜM:
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
stdin'i alt prosesin 'stdin'i bir döngü ile okuyup altprogramlara yazabilirsiniz. –