欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

golang執(zhí)行命令操作 exec.Command

 更新時(shí)間:2020年12月23日 10:50:27   作者:WangPengJu__  
這篇文章主要介紹了golang執(zhí)行命令操作 exec.Command,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

我就廢話不多說了,大家還是直接看代碼吧~

cmd := exec.Command("cmd")
 in := bytes.NewBuffer(nil)
 cmd.Stdin = in//綁定輸入
 var out bytes.Buffer
 cmd.Stdout = &out //綁定輸出
 go func() {
 in.WriteString("node E:/design/test.js\n")//寫入你的命令,可以有多行,"\n"表示回車
 }()
 err = cmd.Start()
 if err != nil {
 log.Fatal(err)
 }
 log.Println(cmd.Args)
 err = cmd.Wait()
 if err != nil {
 log.Printf("Command finished with error: %v", err)
 }
 fmt.Println(out.String())

補(bǔ)充:golang 執(zhí)行外部命令 超時(shí)處理 exec.CommandContext

使用exec.CommandContext來處理外部命令的超時(shí)

func main() {
  timeout := 5
  ctx, cancel := context.WithTimeout(context.Background(), time.Duration(timeout+5)*time.Second)
  defer cancel()
 
  cmdarray := []string{"-c", fmt.Sprintf("%s %s", "sleep", "10")}
  cmd := exec.CommandContext(ctx, "bash", cmdarray...)
  out, err := cmd.CombinedOutput()
 
  //if ctx.Err() == context.DeadlineExceeded {}
  fmt.Printf("ctx.Err : [%v]\n", ctx.Err())
  fmt.Printf("error  : [%v]\n", err)
  fmt.Printf("out   : [%s]\n", string(out))
}

運(yùn)行結(jié)果是:

ctx.Err : [context deadline exceeded]
error  : [signal: killed]
out   : []

如果是一個(gè)命令錯(cuò)誤輸出是什么:

下面這個(gè)例子是使用sleep不帶參數(shù),顯示是錯(cuò)誤的。

cmdarray := []string{"-c", fmt.Sprintf("%s %s", "sleep", "")}


ctx.Err : [<nil>]
error  : [exit status 1]
out   : [usage: sleep seconds
]

可以命令的執(zhí)行錯(cuò)誤不會(huì)導(dǎo)致ctx.Err()錯(cuò)誤。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • Go中的Timer 和 Ticker詳解

    Go中的Timer 和 Ticker詳解

    在日常開發(fā)中,我們可能會(huì)遇到需要延遲執(zhí)行或周期性地執(zhí)行一些任務(wù),這個(gè)時(shí)候就需要用到 Go 語言中的定時(shí)器,本文將會(huì)對這兩種定時(shí)器類型進(jìn)行介紹,感興趣的朋友一起看看吧
    2024-07-07
  • golang映射Map的方法步驟

    golang映射Map的方法步驟

    這篇文章主要介紹了golang映射Map的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 詳解Go中指針的原理與引用

    詳解Go中指針的原理與引用

    在?Go?中,指針是強(qiáng)大而重要的功能,它允許開發(fā)人員直接處理內(nèi)存地址并實(shí)現(xiàn)高效的數(shù)據(jù)操作,本文主要帶大家了解下指針在?Go?中的工作原理以及對于編寫高效、高性能代碼的重要性,希望對大家有所幫助
    2023-09-09
  • 基于Go和PHP語言實(shí)現(xiàn)爬樓梯算法的思路詳解

    基于Go和PHP語言實(shí)現(xiàn)爬樓梯算法的思路詳解

    這篇文章主要介紹了Go和PHP 實(shí)現(xiàn)爬樓梯算法,本文通過動(dòng)態(tài)規(guī)劃和斐波那契數(shù)列兩種解決思路給大家講解的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Golang三個(gè)編譯基本命令的使用小結(jié)

    Golang三個(gè)編譯基本命令的使用小結(jié)

    本文主要介紹了Golang三個(gè)編譯基本命令的使用小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • golang與pgsql交互的實(shí)現(xiàn)

    golang與pgsql交互的實(shí)現(xiàn)

    本文主要介紹了golang與pgsql交互的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 詳解Golang中的Mutex并發(fā)原語

    詳解Golang中的Mutex并發(fā)原語

    Mutex?是?Go?語言中互斥鎖的實(shí)現(xiàn),它是一種同步機(jī)制,用于控制多個(gè)?goroutine?之間的并發(fā)訪問。本文將著重介紹?Go?的?Mutex?并發(fā)原語,希望對大家有所幫助
    2023-03-03
  • 深入探究Go語言的錯(cuò)誤策略與異常機(jī)制

    深入探究Go語言的錯(cuò)誤策略與異常機(jī)制

    本文深入探討了Go語言的錯(cuò)誤策略與異常機(jī)制,主要介紹了錯(cuò)誤處理的重要性,以及Go語言中的錯(cuò)誤類型和處理函數(shù),此外還討論了Go語言的異常機(jī)制,包括panic和recover函數(shù)的使用,需要的朋友可以參考下
    2024-02-02
  • golang?waitgroup的具體使用

    golang?waitgroup的具體使用

    本文主要介紹了golang?waitgroup的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • go?time.After優(yōu)化后性能提升34%內(nèi)存減少67%

    go?time.After優(yōu)化后性能提升34%內(nèi)存減少67%

    這篇文章主要介紹了go語言time.After優(yōu)化后性能提升34%內(nèi)存減少67%實(shí)例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02

最新評(píng)論