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)
答
我会建议在C风格的柜台使用,如代码变得更具可读性和工作速度快:
while read line ; do
printf "%s\t%s" "${URL} ${line}"
printf "\n"
((++TotalResults))
done < <(grep -n -o -a $ExpressionValue $INDEX)
它的伟大工程现在实际上,谢谢! –