使用totalResults = 0
即使我以这种方式定义它:
排版-i TotalResults = 0
它不起作用,那是while循环,其中计数器应该增长,它实际上正在执行其他命令,它正在做printf的东西,但只是没有增加计数器,我用echo检查它,当我想要使用它,它保持在0!
export URL =“$ CurrentURL”
grep -n -o -a $ ExpressionValue $ INDEX |读线;做
printf "%s\t%s" "${URL} ${line}" printf "\n" let TotalResults+=1
完成
有什么问题?我有其他计数器定义相同,他工作得很好,我已经厌倦了,请帮助。
答案 0 :(得分:2)
在|后面的子shell中递增计数器。该变量在父shell中不会更改。将您的代码更改为
while read line ; do
printf "%s\t%s" "${URL} ${line}"
printf "\n"
let TotalResults+=1
done < <(grep -n -o -a $ExpressionValue $INDEX)
答案 1 :(得分:0)
我建议使用c风格的计数器,因为代码变得更易读并且工作更快:
while read line ; do
printf "%s\t%s" "${URL} ${line}"
printf "\n"
(( ++TotalResults))
done < <(grep -n -o -a $ExpressionValue $INDEX)