下面的代码完全符合我的要求,除了它只打印到控制台.
cmd := exec.Command("php", "randomcommand.php")
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
if err := cmd.Run(); err != nil {
log.Fatal(err)
}
Run Code Online (Sandbox Code Playgroud)
randomcommand.php:
// randomcommand.php simply alternates output between stdout and stderr 20 times
$stdout = fopen('php://stdout', 'w+');
$stderr = fopen('php://stderr', 'w+');
for ($i = 1;$i <= 20; $i++) {
fwrite($stdout, "stdout $i\n");
fwrite($stderr, "stderr $i\n");
}
Run Code Online (Sandbox Code Playgroud)
输出:
stdout 1
stderr 1
stdout 2
stderr 2
stdout 3
stderr 3
stdout 4
stderr 4
stdout 5
stderr 5
stdout 6
stderr …Run Code Online (Sandbox Code Playgroud)