登录
首页 >  Golang >  Go问答

如何在编程中获取命令输出和颜色属性?

来源:stackoverflow

时间:2024-03-14 17:27:25 246浏览 收藏

本篇文章给大家分享《如何在编程中获取命令输出和颜色属性?》,覆盖了Golang的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。

问题内容

是否可以读取带有颜色属性的命令输出。我的意思是,我们可以读取实际的转义序列吗?

例如; 命令输出为红色:

hello

我想将其读作:

\033[31;1;4mhello\033[0m

目前我正在阅读它:

func stat(hash string) string {
    cmd := exec.Command("git", "show", "--stat", hash)
    out, err := cmd.Output()
    if err != nil {
        return err.Error()
    }
    return string(out)
}

解决方案


使用 github.com/creack/pty 库在 pty 中运行命令

这对我有用

转义序列在输出中可见

package main

import (
    "github.com/creack/pty"
    "io"
    "os"
    "os/exec"
)

func main() {
    hash := os.Args[1]
    cmd := exec.Command("git", "show", "--stat", hash)
    f, err := pty.Start(cmd)
    if err != nil {
        panic(err)
    }

    io.Copy(os.Stdout, f)
}

好了,本文到此结束,带大家了解了《如何在编程中获取命令输出和颜色属性?》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>