1. 程式人生 > >Golang 通過程式碼執行命令

Golang 通過程式碼執行命令

有時需要通過程式碼執行一些系統命令來獲取資訊,golang 提供exec.Command來實現這一目的。

shtest.go

package main

import (
    "fmt"
    "os/exec"
    "strings"
)

func exeSysCommand(cmdStr string) string {
    cmd := exec.Command("sh", "-c", cmdStr)
    opBytes, err := cmd.Output()
    if err != nil {
        fmt.Println(err)
        return
"" } return string(opBytes) } func GetLocalIp() string { tmp := exeSysCommand("ifconfig eth0 | grep 'inet addr' | cut -d : -f 2 | cut -d ' ' -f 1") if len(tmp) == 0 { fmt.Println("GetLocalIp Failed") return "" } localip := strings.Trim(tmp, "\n") // 去除尾部換行符 return
localip } func main() { ip := GetLocalIp() fmt.Println("ip=", ip) }
$ go run shtest.go
ip= 192.168.110.146