PHP执行JQ - []括号错误:PHP致命错误:无法使用[]进行读取

时间:2016-10-18 12:11:59

标签: php command-line jq

我在PHP脚本中有以下命令:

shell_exec('cd /home/scripts/scripts; ./total.sh | jq '.hits .hits [] .fields["termListData.terms"] | .[]' | wc -l > /home/data/total.csv');

给了我:PHP致命错误:无法使用[]进行阅读......

单独从命令行执行的命令工作正常但不在php脚本中。我做错了什么?

1 个答案:

答案 0 :(得分:1)

问题是你的命令执行中有单引号

您可以将命令拆分为两个

$jq_args = '.hits .hits [] .fields["termListData.terms"] | .[]';
$cmd = 'cd /home/scripts/scripts; ./total.sh | jq '.escapeshellarg($jq_args).' | wc -l > /home/data/total.csv';
shell_exec($cmd);