golang ssh terminal 模式 进入shell 后 按 "上" 键 无法获取上一个命令

各位好, 我使用golang的
"golang.org/x/crypto/ssh"
"golang.org/x/crypto/ssh/terminal"
这两个模块进行模拟的terminal登陆, 代码大致如下:

modes := ssh.TerminalModes{

ssh.ECHO: 0, // 禁用回显(0禁用,1启动)

ssh.TTY_OP_ISPEED: 14400, // input speed = 14.4kbaud

ssh.TTY_OP_OSPEED: 14400, //output speed = 14.4kbaud

ssh.IGNCR: 1, // Ignore CR on input.

}

_log := new(bytes.Buffer)

session.Stdout = io.MultiWriter(os.Stdout, _log)

session.Stderr = io.MultiWriter(os.Stderr, _log)

session.Stdin = NewMyReader()

if err := session.RequestPty("xterm", 120, 200, modes); err != nil {

//if err := session.RequestPty("vt220", 80, 40, modes); err != nil {

log.Fatalf("request for pseudo terminal failed: %s", err)

}

if err = session.Shell(); err != nil {

log.Fatalf("start shell error: %s", err.Error())

}

当我成功进入到机器后, 输入命令都可以. 但当我按了 上 键 后, 理论上应该显示上一次的命令, 但是现在却是 ^[[A 这样一个东西, 并且点击 tab 也没有补全. 想问下如何才能通过使用这个库来实现这两个功能. 谢谢
image.png

以上是 golang ssh terminal 模式 进入shell 后 按 "上" 键 无法获取上一个命令 的全部内容, 来源链接: utcz.com/p/182655.html

回到顶部