O código a seguir permitirá que você execute um subprocesso com golang e, em seguida, conecte-o a stdout, stdin, sterr, etc. Ótimo para acionar chamadas ssh!
Além disso, nota útil, consulte o args ...string
? É como o splat do Python. Ele esperará um número variável de argumentos para a função e, em seguida, o uso args...
passará todos esses argumentos adiante.
package main
import (
"fmt"
"os/exec"
"os"
)
func exec_command(program string, args ...string) {
cmd := exec.Command(program, args...)
cmd.Stdin = os.Stdin;
cmd.Stdout = os.Stdout;
cmd.Stderr = os.Stderr;
err := cmd.Run()
if err != nil {
fmt.Printf("%vn", err)
}
}
func main() {
exec_command("vagrant", "ssh")
}