командная строка — PHP exec с JQ — [] ошибка скобок: PHP фатальная ошибка: невозможно использовать [] для чтения

У меня есть следующая команда в сценарии PHP:

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

который дает мне: PHP фатальная ошибка: не могу использовать [] для чтения …

одна команда из командной строки работает отлично, но не в сценарии php. Что я делаю не так?

0

Решение

Проблема в том, что у вас есть одинарная кавычка при выполнении команды

Вы, вероятно, можете разделить свою команду на две части

$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);
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]