我是靠谱客的博主 轻松香烟,最近开发中收集的这篇文章主要介绍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下的cmd命令所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部