我想获取命令的输出php -r 'echo get_cfg_var("some_var");'
以根据预定义的值进行检查。目前,我有以下代码:
variableName := "default_mimetype"
cmd := exec.Command("php", "-r", "'echo get_cfg_var('"" + variableName + "'");'")
out, err := cmd.CombinedOutput()
跑步后,
err.Error()
返回"exit status 254"
out
"PHP Parse error: syntax error, unexpected end of file in Command line code on line 1"
导致此错误的原因是什么?难道我没有好好逃脱吗?
问题是你的论点。如果将已写入的内容更改为 shell 命令,它将如下所示:
$ php -r "'echo get_cfg_var('"default_mimetype'");'"
您会注意到,第二个参数周围有一组额外的引号,导致语法错误。您可以通过将exec.Command
更改为以下内容来解决此问题:
cmd := exec.Command("php", "-r", "echo get_cfg_var('"" + variableName + "'");")