在循环内执行 Grep 命令会出现错误

在循环内执行 Grep 命令会出现错误

我正在尝试创建一个小程序来根据某些用户提供的时间范围来计算一组日志文件中的行数。我目前处于最后一步,由于某种原因,当我执行该程序时,它失败并出现以下错误 grep: |: 没有这样的文件或目录 grep: wc: 没有这样的文件或目录

执行发生在下面代码的第 6 行。第 7 行显示了我尝试执行的示例命令。如果我注释第 6 行并取消注释第 7 行,它就会执行。我可能会错过一些简单的东西。感谢你的帮助。这些变量的值如下所示

文件名=“'summary_* | wc -l”命令=“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

shell|在解析的一开始就识别元字符。当扩展变量值时,已经为时已晚,因此|表现为文字垂直条,即就像您运行一样

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

您可以使用函数代替变量。

相关内容