我是靠谱客的博主 轻松香烟,这篇文章主要介绍go执行windows或Linux下的cmd命令,现在分享给大家,希望可以做个参考。

//根据端口号查进程pid
func PortToPid(port int) int {
res := -1
var outBytes bytes.Buffer
var cmd *exec.Cmd
goos := runtime.GOOS
switch goos {
case "windows":
cmdStr := fmt.Sprintf("netstat -ano -p tcp | findstr %d", port)
cmd = exec.Command("cmd", "/c", cmdStr)
break
case "linux":
cmdStr := fmt.Sprintf("lsof -i:%d", port)
cmd = exec.Command("bash","-c",cmdStr)
fmt.Println(cmdStr)
fmt.Println(cmd)
break
}
cmd.Stdout = &outBytes
cmd.Run()
resStr := outBytes.String()
r := regexp.MustCompile(`sd+s`).FindAllString(resStr, -1)
if len(r) > 0 {
pid, err := strconv.Atoi(strings.TrimSpace(r[0]))
if err != nil {
res = -1
} else {
res = pid
}
}
return res
}

最后

以上就是轻松香烟最近收集整理的关于go执行windows或Linux下的cmd命令的全部内容,更多相关go执行windows或Linux下内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(103)

评论列表共有 0 条评论

立即
投稿
返回
顶部