亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

如何將標志傳遞給 go lang 中的命令?

如何將標志傳遞給 go lang 中的命令?

Go
呼啦一陣風 2021-11-08 10:16:50
我一直在嘗試運行命令并解析 golang 中的輸出。這是我正在嘗試做的一個示例:包主import (        "fmt"    "os/exec")func main() {    out,err := exec.Command("ls -ltr").Output()        if err != nil {                fmt.Println("Error: %s", err)        }    fmt.Printf("%s",out)}現在,當我嘗試運行“ls -ltr”時,出現此錯誤:Error: %s exec: "ls -ltr": executable file not found in $PATH所以,基本上 go 是在 PATH 中尋找整個“ls -ltr”。它顯然不在那里。有什么辦法可以將標志傳遞給任何參數嗎?TIA。
查看完整描述

1 回答

?
墨色風雨

TA貢獻1853條經驗 獲得超6個贊

您可以通過向函數傳遞更多參數來向程序傳遞參數 - 它是可變參數:


out,err := exec.Command("ls","-ltr").Output()

https://golang.org/pkg/os/exec/#Command


這是您將在大多數語言中看到的 exec 樣式函數的一個非常常見的約定。另一種常見的模式是建造者。


有時,您需要傳遞的參數布局在編譯時是未知的(盡管向系統發送任意命令不是一個好主意 - 保持安全?。H绻獋鬟f未知數量的參數,可以使用具有一些特殊語法的數組:


// Populate myArguments however you like

myArguments := []string{"bar","baz"}


// Pass myArguments with "..." to use variadic behaviour

out,err := exec.Command("foo", myArguments...).Output()


查看完整回答
反對 回復 2021-11-08
  • 1 回答
  • 0 關注
  • 200 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號