golang執(zhí)行命令行的實(shí)現(xiàn)_第1頁
golang執(zhí)行命令行的實(shí)現(xiàn)_第2頁
golang執(zhí)行命令行的實(shí)現(xiàn)_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第golang執(zhí)行命令行的實(shí)現(xiàn)一般情況下,在golang中執(zhí)行一些命令如gitclone,則可以使用exec.Command函數(shù)

funcRunCommand(path,namestring,arg...string)(msgstring,errerror){

cmd:=exec.Command(name,arg...)

cmd.Dir=path

err=cmd.Run()

log.Println(cmd.Args)

iferr!=nil{

log.Println("err",err.Error(),"cmd",cmd.Args)

return

這種寫法是沒有問題,但是一旦執(zhí)行出錯(cuò)返回值過于簡潔了,比如

funcmain(){

msg,err:=common.RunCommand("./","/bin/bash","-c","gitcloneurl")

iferr!=nil{

log.Fatal(err)

return

log.Println(msg)

執(zhí)行后,返回exitstatus128這種提示,太抽象了,還得專門去搜索引擎查看,若是想要看出更詳細(xì)的原因還需如此

funcRunCommand(path,namestring,arg...string)(msgstring,errerror){

cmd:=exec.Command(name,arg...)

varoutbytes.Buffer

varstderrbytes.Buffer

cmd.Stdout=out

cmd.Stderr=stderr

cmd.Dir=path

err=cmd.Run()

log.Println(cmd.Args)

iferr!=nil{

msg=fmt.Sprint(err)+":"+stderr.String()

err=errors.New(msg)

log.Println("err",err.Error(),"cmd",cmd.Args)

log.Println(out.String())

return

再次執(zhí)行,返回

2025/04/0320:33:49[/bin/bash-cgitcloneurl]

2025/04/0320:33:49errexitstatus128:fatal:repositoryurldoesnotexist

cmd[/bin/bash-cgitcloneurl]

2025/04/0320:33:49

2025/04/0320:33:49exitstatus128:fatal:repositoryurldoesnotexist

哦,原來是repositoryurldoesnotexist這個(gè)原因。

更進(jìn)一步說下,為啥加了Stdout和Stderr就能接到值了呢,這是由于有些命令會把錯(cuò)誤信息打到Stdout,而也有些命令會把錯(cuò)誤信息打到Stderr,所以就得把兩個(gè)都收著

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論