1. 首页
  2. 文章

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

windvix ·

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
}

编译运行效果如图:



本文来自:CSDN博客

感谢作者:windvix

查看原文:GO语言运行cmd命令逐行实时输出执行过程

请问输出的内容有换行,如何才可以清除换行
#5
更多评论
请问如何执行shell内嵌命令呢?如"history"命令? 用cmd.Command("history")会报错: exec: "history": executable file not found in $PATH
#2

用户登录

没有账号?注册

今日阅读排行

    加载中

一周阅读排行

    加载中