title: Go - write to stdin on external command
body: <p>I have the following code which executes an external command and output to the console two fields waiting for the user input.
  One for the username and other for the password, and then I have added them manually.</p>
  
  <p>Could anyone give me a hint about how to write to stdin in order to enter these inputs from inside the program?   </p>
  
  <p>The tricky part for me is that there are two different fields waiting for input, and I'm having trouble to figure out how to fill one after the other.</p>
  
  <pre><code>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)
  }
  </code></pre>
  
  <p>SOLUTION:</p>
  
  <pre><code>login := exec.Command(cmd, "login") 
  
  var b bytes.Buffer
  b.Write([]byte(username + "\n" + pwd + "\n"))
  
  login.Stdout = os.Stdout
  login.Stdin = &amp;b
  login.Stderr = os.Stderr
  </code></pre>