abiosoft / abiosoft/ishell

Shell prints input line when run with NewWithConfig on different terminal

未关闭
#116 2 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
Go
星标
1.8k
派生
213
PR 合并指标
30 天内没有已合并 PR

描述

Apols if I'm making a mistake here and this is not a bug - I would like to be able to access ishell through another terminal instance on Linux with go 1.12.5. So first, I set up a listener (leaving out error handling and `defer` here to keep the code short):
```
listener, err := net.Listen("tcp", host)
conn, err := listener.Accept()
```
where host is "localhost:8000" for testing. Next, I've imported `"github.com/abiosoft/readline"` to be able to run the shell with the listener's connection parameters in the configuration for NewWithConfig:
```
termCfg := &readline.Config{
Stdin: io.ReadCloser(conn),
Stdout: io.Writer(conn),
StdinWriter: io.Writer(conn),
Stderr: io.Writer(conn),
}
```
Then I start the shell in a second terminal window through the listener:
```
shell := ishell.NewWithConfig(termCfg)
shell.Run()
```
This works fine when I open another shell and connect with `nc localhost 8000` - except for the fact that after I type in a command such as `help`, the input line is not only echoed character for character as expected, but then printed again, giving me stuff like
```
> help
> help

Commands:
clear clear the screen
exit exit the program
help display help
```
I'm wondering if StdinWriter is the problem here, but changing that doesn't seem to help. I can't find an example for `NewWithConfig` in the docs. Is this a bug or am I missing something obvious? Thanks!

贡献指南

这个仓库没有索引到贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。