加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

GO语言运行cmd命令逐行实时输出执行过程

发布时间:2020-12-16 18:44:55 所属栏目:大数据 来源:网络整理
导读:Golang运行cmd命令逐行实时输出执行过程,注意,不是一次输出所有的内容,而是按照执行的过程,逐行逐行的实时显示出来 代码如下: package mainimport ("bufio""fmt""io""os/exec")func main() {command := "ls"params := []string{"-l"}//执行cmd命令: ls

Golang运行cmd命令逐行实时输出执行过程,注意,不是一次输出所有的内容,而是按照执行的过程,逐行逐行的实时显示出来

代码如下:

package main

import (
	"bufio"
	"fmt"
	"io"
	"os/exec"
)

func main() {
	command := "ls"
	params := []string{"-l"}
	//执行cmd命令: ls -l
	execCommand(command,params)
}

func execCommand(commandName string,params []string) bool {
	cmd := exec.Command(commandName,params...)

	//显示运行的命令
	fmt.Println(cmd.Args)

	stdout,err := cmd.StdoutPipe()

	if err != nil {
		fmt.Println(err)
		return false
	}
	
	cmd.Start()

	reader := bufio.NewReader(stdout)

	//实时循环读取输出流中的一行内容
	for {
		line,err2 := reader.ReadString('n')
		if err2 != nil || io.EOF == err2 {
			break
		}
		fmt.Println(line)
	}

	cmd.Wait()
	return true
}

编译运行效果如图:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读