我想使用 golang 的 exec.Command() 運行以下 bash 命令ls > sample.txt為此我寫_,err:=exec.Command("ls",">","sample.txt").Output()但這似乎不起作用。我知道我可以使用exec.Command().StdoutPipe()但我想以這種方式專門寫。知道我如何在 golang 中做到這一點嗎?
1 回答

楊魅力
TA貢獻1811條經驗 獲得超6個贊
從文檔:
與來自 C 和其他語言的“系統”庫調用不同,os/exec 包有意不調用系統 shell 并且不擴展任何 glob 模式或處理通常由 shell 完成的其他擴展、管道或重定向。該包的行為更像是 C 的“exec”函數族。要擴展 glob 模式,要么直接調用 shell,注意轉義任何危險的輸入,要么使用 path/filepath 包的 Glob 函數。要擴展環境變量,請使用 package os 的 ExpandEnv。
有了它,我對你想要做什么的最好猜測是運行 bash 并將你的命令作為參數傳遞給它:
out, err := exec.Command("bash", "-c", cmd)
- 1 回答
- 0 關注
- 281 瀏覽
添加回答
舉報
0/150
提交
取消