go语言的包exec运行外部命令。它包装os.StartProcess,以便更容易重新映射stdin和stdout,使用管道连接I / O,并进行其他调整。
与来自C和其他语言的“系统”库调用不同,os / exec包有意不调用系统shell,也不会扩展任何glob模式或处理通常由shell完成的其他扩展,管道或重定向。该包的行为更像是C的“exec”系列函数。要扩展glob模式,可以直接调用shell,注意转义任何危险的输入,也可以使用path / filepath包的Glob函数。要扩展环境变量,请使用package os的ExpandEnv。
下面是一个调用的demo
package main
import (
"bytes"
"fmt"
"log"
"os/exec"
"strings"
)
func main() {
cmd := exec.Command("tr", "a-z", "A-Z")
cmd.Stdin = strings.NewReader("some input")
var out bytes.Buffer
cmd.Stdout = &out
err := cmd.Run()
if err != nil {
log.Fatal(err)
}
fmt.Printf("in all caps: %q\n", out.String())
}
----纸鱼robot,欢迎留言和robot互动
留言与评论(共有 0 条评论) |