错误代码:

import "os/exec"

func main(){

cmd := exec.Command("ping", "192.168.1.5", "-W", "5", "-n", "3")

err := cmd.Run()

if err != nil{

fmt.Println("command run fail..", err)

return

}

return

}

以上代码执行的时候会报 exit status 1 的错误,错误原因是 参数 "-W" 应该是小写。

正确代码:

import "os/exec"

func main(){

cmd := exec.Command("ping", "192.168.1.5", "-w", "5", "-n", "3")

err := cmd.Run()

if err != nil{

fmt.Println("command run fail..", err)

return

}

return

}

Command参数解释:

"ping":需要在命令行执行的命令

"192.168.1.5": 需要ping的地址

"-w": 等待每次回复的超时时间(毫秒)

"-n": 要发送的回显请求数

 这个命令的实际效果如下:

 

 ping 命令的其他参数可以用 ping -help 来查看

ping -help

 

用法: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]             [-r count] [-s count] [[-j host-list] | [-k host-list]]             [-w timeout] [-R] [-S srcaddr] [-c compartment] [-p]             [-4] [-6] target_name

选项:     -t             Ping 指定的主机,直到停止。                    若要查看统计信息并继续操作,请键入 Ctrl+Break;                    若要停止,请键入 Ctrl+C。     -a             将地址解析为主机名。     -n count       要发送的回显请求数。     -l size        发送缓冲区大小。     -f             在数据包中设置“不分段”标记(仅适用于 IPv4)。     -i TTL         生存时间。     -v TOS         服务类型(仅适用于 IPv4。该设置已被弃用,                    对 IP 标头中的服务类型字段没有任何                    影响)。     -r count       记录计数跃点的路由(仅适用于 IPv4)。     -s count       计数跃点的时间戳(仅适用于 IPv4)。     -j host-list   与主机列表一起使用的松散源路由(仅适用于 IPv4)。     -k host-list    与主机列表一起使用的严格源路由(仅适用于 IPv4)。     -w timeout     等待每次回复的超时时间(毫秒)。     -R                  同样使用路由标头测试反向路由(仅适用于 IPv6)。                    根据 RFC 5095,已弃用此路由标头。                    如果使用此标头,某些系统可能丢弃                    回显请求。     -S srcaddr     要使用的源地址。     -c compartment 路由隔离舱标识符。     -p             Ping Hyper-V 网络虚拟化提供程序地址。     -4             强制使用 IPv4。     -6             强制使用 IPv6。