не увеличивать счетчик - PullRequest
       33

не увеличивать счетчик

0 голосов
/ 25 ноября 2011

ну, я просто не знаю, что случилось, мой счетчик результатов grep работал, и теперь кажется, что независимо от того, что я делаю, он не считает мои результаты и остается на начальном значении 0, в первой строкескрипт, который я инициировал:

TotalResults = 0

, даже если я определил его таким образом:

typeset -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

сделано

в чем проблема?У меня есть другой счетчик, который определил то же самое, и он отлично работает, я устал от этого, пожалуйста, помогите.

Ответы [ 2 ]

2 голосов
/ 25 ноября 2011

Вы увеличиваете счетчик в подоболочке после |.Переменная не изменяется в родительской оболочке.Измените свой код на

while read line ; do

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

done < <(grep -n -o -a $ExpressionValue $INDEX)
0 голосов
/ 26 ноября 2011

Я бы предложил использовать счетчик в стиле c, так как код стал более читабельным и работает быстрее:

while read line ; do

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

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