這個問題在這里已經有了答案: 從 Golang 執行 Bash 腳本 (4 個答案) 昨天關門了。
我想創建一個包裝程式,可以包裝用戶提供的任何 shell 命令,例如:
./wrapper "cmd1 && cmd2"
在 Python 中,我可以呼叫os.system("cmd1 && cmd2"). 但是 Golangexec.Command需要一個命令和引數串列。Golang 有沒有辦法像 Python 一樣進行歸檔os.system()?
uj5u.com熱心網友回復:
作業系統/執行 https://pkg.go.dev/os/exec
package main
import (
"fmt"
"os"
"os/exec"
)
func main() {
cmd := exec.Command("/usr/bin/bash", "-c", os.Args[1])
output, err := cmd.CombinedOutput()
if err != nil {
panic(err)
}
fmt.Println(string(output))
}
$ go run main.go "ls -alh && pwd"
total 4.0K
drwxr-xr-x 2 xxxx xxxx 120 Nov 14 11:12 .
drwxrwxrwt 17 root root 420 Nov 14 11:42 ..
-rw-r--r-- 1 xxxx xxxx 217 Nov 14 11:42 main.go
/tmp/stk
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/535747.html
標籤:去
下一篇:如何知道變數名繼承goerror
