bash不增加计数器

问题描述:

以及我只是不知道发生了什么,我的grep结果计数器用于工作,现在 似乎不管我做了什么,它不计算我的结果并保持在 的初始值为0,在脚本的第一行我启动它:bash不增加计数器

使用totalResults = 0

即使我以这种方式进行定义:

排版-iŤ otalResults = 0

它不会工作,这是while循环,其中计数器应该增长,它实际上做其他命令,它做的printf的东西,但只是不增加计数器,我检查了它回声,也当我想使用它,它保持在0!

出口URL = “$ CURRENTURL”

的grep -n -o -a $ ExpressionValue $ INDEX |而读线;不要

 printf "%s\t%s" "${URL} ${line}" 
     printf "\n" 
     let TotalResults+=1 

是什么问题?我有其他柜台定义相同,他工作很好,我厌倦了这一点,请帮助。

您正在增加一个子shell中的计数器,在|之后。该变量在父shell中不会更改。更改您的代码

while read line ; do 

     printf "%s\t%s" "${URL} ${line}" 
     printf "\n" 
     let TotalResults+=1 

done < <(grep -n -o -a $ExpressionValue $INDEX) 
+0

它的伟大工程现在实际上,谢谢! –

我会建议在C风格的柜台使用,如代码变得更具可读性和工作速度快:

while read line ; do 

     printf "%s\t%s" "${URL} ${line}" 
     printf "\n" 
     ((++TotalResults)) 

done < <(grep -n -o -a $ExpressionValue $INDEX)