试图通过我的PHP脚本在我的apache服务器中执行bash命令,但是收到错误

时间:2013-07-25 21:32:14

标签: php bash awk exec

我刚刚开始将bash命令实现到我的php脚本中,前几个工作正常,我正在尝试在我的php脚本中执行以下bash命令

exec("awk -F: '{printf "www.example.com/2/tks.php?account=%s%%3A%s\n" ,$1, $2 }' < /opt/lampp/htdocs/$filename > /opt/lampp/htdocs/2.txt");

我从我的PHP脚本中获得的错误在我放入之前工作正常

Parse error: syntax error, unexpected 'www' (T_STRING) in /opt/lampp/htdocs/index.php on line 54

2 个答案:

答案 0 :(得分:1)

你必须在字符串中转义双引号:

exec("awk -F: '{printf \"www.example.com/2/tasks.php?account=%s%%3A%s\\n\" ,$1, $2 }' < /opt/lampp/htdocs/$filename > /opt/lampp/htdocs/2.txt");

答案 1 :(得分:0)

错误是因为您没有在printf语句中转义exec语句的双引号。

在它的当前状态中,PHP将"awk -F: '{printf "视为字符串的第一部分,因为它们用双引号括起来。要告诉PHP忽略其他引号,可以使用反斜杠。

将其更改为:

exec("awk -F: '{printf \"www.example.com/2/tks.php?account=%s%%3A%s\n\" ,$1, $2 }' < /opt/lampp/htdocs/$filename > /opt/lampp/htdocs/2.txt");