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 也没有补全. 想问下如何才能通过使用这个库来实现这两个功能. 谢谢
以上是 golang ssh terminal 模式 进入shell 后 按 "上" 键 无法获取上一个命令 的全部内容, 来源链接: utcz.com/p/182655.html