exec.Command输出中的“错误值”

时间:2016-10-13 19:49:47

标签: go exec

我的go语言程序打印“选项-n 1的值不正确,有效范围为1到4294967295”。尝试使用下面的代码片段进行ping时

result , err := exec.Command("ping","-n 1", "-w 1", ip).Output()
fmt.Printf("%s\n", result)

从Win中的cmd进行,即'ping -n 1 -w 1 8.8.8.8'是正常的

2 个答案:

答案 0 :(得分:5)

您需要将-n-w标志及其值分隔为单独的参数(您的shell已经在执行此操作):

result , err := exec.Command("ping", "-n", "1", "-w", "1", ip).Output()

答案 1 :(得分:1)

exec.Command()不会创建一次运行所有字符串。

它会创建ping进程以及一组发送给它的选项。

因此每个标志及其对应的值需要单独传递:

result, err := exec.Command("ping","-n", "1", "-w", "1", ip).Output()