Выполнение команды Grep в цикле приводит к ошибке

Выполнение команды Grep в цикле приводит к ошибке

Я пытаюсь создать небольшую программу для подсчета количества строк в наборе файлов журнала на основе указанного пользователем временного интервала. В настоящее время я нахожусь на последнем этапе, и по какой-то причине при запуске программы она завершается с ошибкой ниже. grep: |: Нет такого файла или каталога grep: wc: Нет такого файла или каталога

Выполнение происходит в строке 6 в коде ниже. Строка 7 показывает пример команды, которую я пытаюсь выполнить. Если я закомментирую строку 6 и раскомментирую строку 7, она выполнится. Я могу упустить что-то простое. Спасибо за вашу помощь. Значения этих переменных приведены ниже

Имя_файла="' summary_* | wc -l" command="grep '" comm=ived>20161215110

1 for (( z=0; z<($interval/10); z++ ))
2 do
3       comm=$tempCommand$count
4       let "count = $count + 1"                                
5       #echo "$command$comm$fileName"
6       totalCount=`$command$comm$fileName`
7       #totalCount=`grep 'ived>20161215110' summary_* | wc -l`
8       echo $totalCount
9 done

решение1

Оболочка распознает |метасимвол в самом начале разбора. При расширении значения переменной уже слишком поздно, поэтому |ведет себя как буквальная вертикальная черта, т.е. как если бы вы запустили

grep 'ived>20161215110' summary_* \| wc -l

Вместо переменной можно использовать функцию.

Связанный контент