Como manter um contador em várias execuções de um script?

2

Eu tenho um script com uma instrução condicional e quero descobrir quantas vezes a cláusula then é executada em várias execuções do mesmo script.

por exemplo:

if [condition]

then

  Some code;
  ACTIVATE COUNTER;

else

  Some code;
  RESET COUNTER;
fi
    
por Eka 22.05.2015 / 06:33

1 resposta

2

Você precisa armazenar a contagem em algum lugar onde ela persistirá em várias execuções do script, já que as variáveis estão apenas na memória para essa única execução.

O lugar mais fácil é provavelmente em um arquivo.

A maneira particular de armazená-lo em um arquivo depende de alguns fatores, incluindo quantas vezes você está contando e se espera execuções simultâneas. Um jeito simples e robusto seria assim

if CONDITION
then
    echo run >> ~/script-counter
fi

Isso acrescenta uma linha a um arquivo toda vez que ele é executado. (Você pode querer escolher um nome ou local melhor para o arquivo para refletir o que ele realmente faz no seu programa.)

Isso é bem simples, e será bastante robusto se o script for interrompido ou se você executar várias cópias ao mesmo tempo.

Você pode encontrar a contagem com wc -l ~/script-counter

Você pode redefinir o contador apenas esvaziando o arquivo, com

: > ~/script-counter

( : é um comando interno do shell que não faz nada, então redirecioná-lo para o arquivo esvazia o arquivo.)

    
por poolie 22.05.2015 / 06:57