【golang】golang執行shell腳本返回錯誤碼

sout, err := linux.ExecCmd(action) if err != nil { errcode := 0 exitError, ok := err.(*exec.ExitError) if ok { errcode = exitError.ExitCode() } out := _TrimTail(sout) g.Log().Warningf(ctx, "ExecCmd fail, {%v}, \n\tCmd: \n%v, \n\tOut-RetCode: %v\n\tOut: \n%v", err, action, errcode, out) return } func ExecCmd_Advance(strCmd string) (status int, out string, err error) { cmd := exec.Command("/bin/bash", "-c", strCmd) stdout, err := cmd.StdoutPipe() if err != nil { return } cmd.Start() if err != nil { return } //創建一個流來讀取管道內內容,這裏邏輯是通過一行一行的讀取的 reader := bufio.NewReader(stdout) //實時循環讀取輸出流中的一行內容 for { line, err2 := reader.ReadString('\n') if err2 != nil || io.EOF == err2 { break } out += line } if err := cmd.Wait(); err != nil { exitError, ok := err.(*exec.ExitError) if ok { status = exitError.ExitCode() } } return }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章