我想得到命令的输出,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()
Run Code Online (Sandbox Code Playgroud)
跑完之后
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\");'"
Run Code Online (Sandbox Code Playgroud)
您会注意到第二个参数周围有一组额外的引号会导致语法错误.您可以通过将您更改exec.Command为以下内容来解决此问题:
cmd := exec.Command("php", "-r", "echo get_cfg_var(\"" + variableName + "\");")
Run Code Online (Sandbox Code Playgroud)