第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何隱藏終端命令的輸出

如何隱藏終端命令的輸出

Go
喵喵時光機 2023-07-17 13:58:47
我有一個復(fù)雜的ffmpeg命令要執(zhí)行,我需要使用 Go 來執(zhí)行。該命令正在工作,當我嘗試使用隱藏命令的輸出時,問題就出現(xiàn)了> /dev/null 2>&1這是我的代碼:cmd := exec.Command(    "ffmpeg",    "-y",    "-loglevel", "warning",    "-i", ConvertImage,    "-i", videoInput,    "-c:v", cv,    "-c:a", audioCodec,    "-crf", fmt.Sprintf("%d", crf),    "-map", "[v]",    "-map", "1:a?",    "-r", fmt.Sprintf("%d", Res.FrameRate),    "-strict",    "-2",    outputFile,    "> /dev/null 2>&1",)當我嘗試隱藏命令的輸出時,沒有最后一個字段"> /dev/null 2>&1",代碼工作正常,命令跳過而不運行。我做錯了什么?我該如何修復(fù)它?
查看完整描述

1 回答

?
四季花海

TA貢獻1811條經(jīng)驗 獲得超5個贊

您可以簡單地將輸出放入bytes.Buffer變量中,如下所示:


cmd := exec.Command(

    "ffmpeg",

    "-y",

    "-loglevel", "warning",

    "-i", ConvertImage,

    "-i", videoInput,

    "-c:v", cv,

    "-c:a", audioCodec,

    "-crf", fmt.Sprintf("%d", crf),

    "-map", "[v]",

    "-map", "1:a?",

    "-r", fmt.Sprintf("%d", Res.FrameRate),

    "-strict",

    "-2",

    outputFile,

)


var execOut bytes.Buffer

var execErr bytes.Buffer

cmd.Stdout = &execOut

cmd.Stderr = &execErr

通過這樣做,輸出和錯誤都在相應(yīng)的緩沖區(qū)中。


現(xiàn)在,如果您想打印它們,則可以將以下代碼片段與上述代碼一起使用:


err := cmd.Run()

if err != nil {

    fmt.Println("Cannot Execute cmd: ", err.Error())

}

outStr := execOut.String()

errStr := execErr.String()

if len(outStr) > 0 {

    fmt.Print(outStr)

}

if len(errStr) > 0 {

    fmt.Print(errStr)

}

更新:或者,如果您完全不需要 stdout 和 stderr,那么您可以將cmd.Stdout和設(shè)置cmd.Stderr為nil如下所示:


cmd.Stdout = nil

cmd.Stderr = nil


err := cmd.Run()

if err != nil {

    fmt.Println("Cannot Execute cmd: ", err.Error())

}


查看完整回答
反對 回復(fù) 2023-07-17
  • 1 回答
  • 0 關(guān)注
  • 165 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號