使用多个参数执行命令
在 Go 中执行命令时,一定要注意参数传递给命令的方式。用户最近遇到的一个问题是,从控制台执行带有某些参数的命令“top”可以工作,但在使用 exec 包时失败。
问题
用户的代码成功执行了“top -n 10 -l 2”,但未能执行“top -o cpu -n 10 -l 2”。 exec 包提供的错误消息表明“-o cpu”参数无效。
解决方案
问题在于参数传递给的方式命令。控制台上的命令行解释器会自动分隔参数,从而允许命令正确解析它们。但是,在使用 exec 包时,必须显式分隔参数。
对于这种特殊情况,正确的代码是:
cmd := exec.Command(app, "-o", "cpu", "-n", "10", "-l", "2")
通过分隔参数,exec 包可以按预期将它们传递给命令,解决错误。
以上是当同一个命令在控制台中运行时,为什么我的 Go `exec.Command` 由于多个参数而失败?的详细内容。更多信息请关注PHP中文网其他相关文章!