// go語言運行shell命令 package main import ( "os/exec" "fmt" "os" "strings" ) func main() { var ip, whoami []byte var err error var cmd *exec.Cmd // 執行單個shell命令時, 直接運行便可 cmd = exec.Command("whoami") if whoami, err = cmd.Output(); err != nil { fmt.Println(err) os.Exit(1) } // 默認輸出有一個換行 fmt.Println(string(whoami)) // 指定參數後過濾換行符 fmt.Println(strings.Trim(string(whoami), "\n")) fmt.Println("====") // mac平臺獲取ip地址 // 執行連續的shell命令時, 須要注意指定執行路徑和參數, 不然運行出錯 cmd = exec.Command("/bin/sh", "-c", `/sbin/ifconfig en0 | grep -E 'inet ' | awk '{print $2}'`) if ip, err = cmd.Output(); err != nil { fmt.Println(err) os.Exit(1) } fmt.Println(string(ip)) fmt.Println(strings.Trim(string(ip), "\n")) }
效果:shell