用golang写一个从网络接收命令并执行且返回结果的程序
时间: 2023-04-09 17:03:36 浏览: 71
好的,这是一个可以接收并执行命令并返回结果的简单程序的示例。这个程序使用了 Go 语言标准库中的 `net/http` 包来处理 HTTP 请求,并使用了 `os/exec` 包来执行系统命令。
```
package main
import (
"fmt"
"net/http"
"os/exec"
"strings"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
// 解析请求中的命令
cmd := r.URL.Query().Get("cmd")
if cmd == "" {
http.Error(w, "请提供命令", http.StatusBadRequest)
return
}
// 执行命令
output, err := exec.Command("bash", "-c", cmd).Output()
if err != nil {
http.Error(w, fmt.Sprintf("执行命令时出错: %s", err), http.StatusInternalServerError)
return
}
// 将命令的输出写到响应中
fmt.Fprint(w, strings.TrimSpace(string(output)))
})
http.ListenAndServe(":8080", nil)
}
```
这个程序会在本地的 8080 端口启动一个 HTTP 服务器,你可以通过向 `http://localhost:8080?cmd=your-command` 发送 HTTP GET 请求来执行命令。命令的输出会作为 HTTP 响应的内容返回。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)