Golang 通過程式碼執行命令
阿新 • • 發佈:2018-11-28
有時需要通過程式碼執行一些系統命令來獲取資訊,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