神龙论坛
登录
快速注册
首页
v2ex精选
发新帖
golang 的标准输出
jeesk
2024-07-22 14:56
0
我想将 htop 封装到 exec.Command(). 然后继续将输出打印出来, 当我使用 stdout := cmd.StdoutPipe() 加上 bufio.NewScanner(stdout)的时候, 其实只能打印 htop 的一行。 有什么办法模拟 stdout 的输出?
上一篇:
MacBook Pro 求推荐
下一篇:
谷歌苹果 steam 开发者无限额回款结汇
最新回复
(
3
)
Foralrec
4月前
引用
2
楼
这段加上了么
```
var stdoutBuilder strings.Builder
for stdoutScanner.Scan() {
stdoutBuilder.WriteString(stdoutScanner.Text() + "\n")
}
```
securityCoding
4月前
引用
3
楼
@Foralrec
????
jeesk
楼主
4月前
引用
4
楼
不是, 最主要的是 stdoutScaner.Text() 是一行, 但是命令每次是覆盖输出。
我这里的 htop 命令只是举例。 大概是这样(下面是举例):
执行 htop 后: 下面的输出会不断刷新。
第一次输出:
hello world!
hello python!
hello java!
第二次输出:
hello china!
hello usa!
hello japan!
这种命令的输出只有 cmd.stdout = os.Stdout , 才能像命令行一样持续输出。 如果使用 stdoutScanner.Text() 这种每次只能得到一样, 根本不知道 hello japan! 的上下文是什么。 我无法获取到有用的信息。
回复请
登录
or
快速注册
返回
jeesk