登录
首页 >  Golang >  Go问答

Golang SSH 会话中的 ANSI 转义字符

来源:stackoverflow

时间:2024-02-21 16:00:23 199浏览 收藏

编程并不是一个机械性的工作,而是需要有思考,有创新的工作,语法是固定的,但解决问题的思路则是依靠人的思维,这就需要我们坚持学习和更新自己的知识。今天golang学习网就整理分享《Golang SSH 会话中的 ANSI 转义字符》,文章讲解的知识点主要包括,如果你对Golang方面的知识点感兴趣,就不要错过golang学习网,在这可以对大家的知识积累有所帮助,助力开发能力的提升。

问题内容

我正在创建一个 scp-tui,但我无法让终端颜色正常工作,我需要它们,因为我必须区分文件夹和文件。当我调用命令 ls 时,它仅返回包含不带颜色的文件列表的字符串。我怎样才能让它工作?

session, err := sshClient.NewSession()
    handleError(err)
    defer session.Close()

    // Set up terminal modes
    modes := ssh.TerminalModes{
        ssh.ECHO:          0, // disable echoing
        ssh.ECHOCTL:       0,
        ssh.TTY_OP_ISPEED: 14400, // input speed = 14.4kbaud
        ssh.TTY_OP_OSPEED: 14400, // output speed = 14.4kbaud
    }

    err = session.RequestPty("xterm", 80, 40, modes)

    handleError(err)

    var output []byte
    output, err = session.Output("ls")

    fmt.Printf("output: %v\n", output)
    return string(output), err

附注有没有更好的方法来获取当前目录的文件和文件夹列表?

更新:我通过执行两个不同的命令来首先获取文件,然后获取目录,暂时解决了该问题。


正确答案


不太确定终端输出颜色是如何根据提供的代码隐式渲染的。也就是说,我找到了这篇文章,希望它能对您有所帮助。 https://twin.sh/articles/35/how-to-add-colors-to-your-console-terminal-output-in-go

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

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