Cmd 結構體
命令的操做經過 Cmd結構體實現svg
type Cmd struct { // 命令 Path string // 命令參數 Args []string // 進程執行環境 Env []string // 命令執行目錄, 默認當前目錄 Dir string // 命令輸入 Stdin io.Reader // 命令輸出 Stdout io.Writer // 命令報錯 Stderr io.Writer ExtraFiles []*os.File SysProcAttr *syscall.SysProcAttr Process *os.Process ProcessState *os.ProcessState }
建立命令對象
- Command
func Command(name string, arg ...string) *Cmd
cmd, err := exec.Command("echo", "show me") if err != nil{ fmt.Printf("err: %v", err) return }
執行命令
- Run 阻塞進程,直到命令執行結束
- Start 非阻塞執行
- Wait 阻塞進程,等待命令執行結束, 與 Star 配合使用
接收命令輸出
var outInfo bytes.Buffer cmd := exec.Command("echo", "show me") // 設置接收 cmd.Stdout = &outInfo // 執行 cmd.Run() fmt.Println(out.String())
設置命令輸入
var outInfo bytes.Buffer cmd := exec.Command("tr", "a-z", "A-Z") cmd.Stdin = strings.NewReader("select * from user") cmd.Stdout = &outInfo cmd.Run() fmt.Println(out.String())
本文同步分享在 博客「直立猿」(JianShu)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。ui