我有以下代码段
package main
import (
"os/exec"
"bufio"
"fmt"
)
func main() {
cmd := exec.Command("terraform", "init")
cmd.Dir = ""
stdout, _ := cmd.StdoutPipe()
stdoutScanner := bufio.NewScanner(stdout)
stdoutScanner.Scan()
fmt.Println("End of main")
}
stdoutScanner.Scan()永远挂起,没有任何输出
我在具有代理的VPC中。
发生这种情况是否有可能的原因?
答案 0 :(得分:1)
在任何需要的地方添加了评论。
package main
import (
"bufio"
"fmt"
"log"
"os"
"os/exec"
)
func main() {
//args should be specified as you provide them in terminal
cmd := exec.Command("ls", "-l", "-h")
//set all required parameters
cmd.Stdin = os.Stdin
stdout, _ := cmd.StdoutPipe()
b := bufio.NewScanner(stdout)
//start the command
err := cmd.Start()
if err != nil {
log.Println(err)
}
//see if you have something, until EOF
//b.Scan() blocks until you get some input, or EOF
//It's something like streaming input.
for b.Scan() {
//print the input
fmt.Println(b.Text())
}
}