shell之不输入该如何输入Golang中Stdin的输入字段
mq0036
阅读:169
2025-06-02 22:19:02
评论:0
所以我是新手,请原谅我的无知。我试图写一个最小的 shell 。为此,我想实现类似于bash或zsh的命令历史记录,其中的向上箭头可以调出最新的命令,并将其放入您的键入字段中,而无需实际输入。
目前,我正在阅读如下输入:
for {
// prompter
promptColor.Printf(shellPrompt)
// read string from STDIN until newline
input, _ := reader.ReadString('\n')
// convert CRLF to LF
input = strings.Replace(input, "\n", "", -1)
// read input tokens
tokens := SplitString(input)
// parse tokens and execute relevant command
Parse(tokens)
}
使用bufio.Reader读入。我看了一下,但找不到找到写入该输入的方法。
请您参考如下方法:
大多数要实现此行为的软件包将使用GNU Readline库。甚至Bash shell都在使用此readline库(修改后的副本)。考虑以下两个选项之一:
第一条路径将为您提供可靠的ReadLine库,但需要构建“C”代码。您可以根据自己的经验/约束决定要走的路。
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。



