在golang中调用ping命令为什么不能像windows命令行输出呢?我是新手

1283292280 · 2016-09-29 15:05:09 · 3272 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2016-09-29 15:05:09 的主题,其中的信息可能已经有所发展或是发生改变。

我在WIN10 CMD窗口使用ping命令 123.png

然后使用GOLANG调用ping命令

func main() {

cmd := exec.Command("cmd", "ping", "127.0.0.1")
stdout, err := cmd.StdoutPipe()
stdin, err := cmd.StdinPipe()
stderr, err := cmd.StderrPipe()
cmd.Start()
if err != nil {
    fmt.Println("出错")
}
r := bufio.NewReader(stdout)
line, _, err := r.ReadLine()
fmt.Println(stdin, stdout, stderr)
fmt.Println(line)
fmt.Printf("%s", line)
x := fmt.Sprintf("%s", line)
fmt.Println(x)
cmd.Wait()

} 显示如下 456.png

go调用ping命令为什么不能像WINDOWS下ping 一个一个打印出来 像这样的 789.png


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3272 次点击  
加入收藏 微博
3 回复  |  直到 2016-10-05 13:14:26
stevewang
stevewang · #1 · 9年之前

ping命令有对应的执行文件,不需要在cmd里执行。

package main

import (
    "os"
    "os/exec"
)

func main() {
    cmd := exec.Command("ping", "127.0.0.1")
    cmd.Stdout = os.Stdout
    cmd.Run()
}
zistxym
zistxym · #2 · 9年之前

line 改成 string(line) 试下 或者可以看下我这里的http://blog.csdn.net/zistxym/article/details/8672763的例子

jinwangdalaohu
jinwangdalaohu · #3 · 9年之前

%s the uninterpreted bytes of the string or slice

试试 %T a Go-syntax representation of the type of the value

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传