A execução do comando Grep dentro de um loop dá erro

A execução do comando Grep dentro de um loop dá erro

Estou tentando criar um pequeno programa para contar o número de linhas em um conjunto de arquivos de log com base em algum período de tempo fornecido pelo usuário. Atualmente estou na última etapa e por algum motivo, quando executo o programa, ele falha com o erro abaixo grep: |: Arquivo ou diretório inexistente grep: wc: Arquivo ou diretório inexistente

A execução acontece na linha 6 do código abaixo. A linha 7 mostra um exemplo de comando que estou tentando executar. Se eu comentar a linha 6 e descomentar a linha 7, ele será executado. Posso estar faltando algo simples. Agradeço sua ajuda. Os valores dessas variáveis ​​​​são fornecidos abaixo

fileName="' 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

Responder1

O shell reconhece o |metacaractere logo no início da análise. Ao expandir o valor de uma variável, já é tarde demais, então |se comporta como uma barra vertical literal, ou seja, como se você tivesse executado

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

Você pode usar uma função em vez de uma variável.

informação relacionada