1
Foralrec 115 天前
这段加上了么
``` var stdoutBuilder strings.Builder for stdoutScanner.Scan() { stdoutBuilder.WriteString(stdoutScanner.Text() + "\n") } ``` |
2
securityCoding 115 天前
@Foralrec 🤣
|
3
jeesk OP 不是, 最主要的是 stdoutScaner.Text() 是一行, 但是命令每次是覆盖输出。
我这里的 htop 命令只是举例。 大概是这样(下面是举例): 执行 htop 后: 下面的输出会不断刷新。 第一次输出: hello world! hello python! hello java! 第二次输出: hello china! hello usa! hello japan! 这种命令的输出只有 cmd.stdout = os.Stdout , 才能像命令行一样持续输出。 如果使用 stdoutScanner.Text() 这种每次只能得到一样, 根本不知道 hello japan! 的上下文是什么。 我无法获取到有用的信息。 |
4
jeesk OP 此帖终结, 目前 golang 没有太好的办法。 目前采用的办法是修改调用软件的输出,重新编译源码。
|
5
zzhaolei 114 天前
|
6
julyclyde 114 天前
htop 是不是用的 tty 啊?
|
7
xi4oyu 113 天前
可以了解一下 pty ,和这个有关,不知道咋说明白
|