The pattern under which the data was saved was different than the pattern under the data was loaded on the next run. The reason being an undefined variable that evaluates to the empty string. The result was that the number of matching lines reported was for the whole logfile instead of the time since the last run.
* fix spelling mistake (thanks, codespell)
* do not hide exit code of command substitution via "local" (thanks, shellcheck)
* avoid access of potentially undefined variables (thanks, shellcheck)
* fix tabs/spaces
* avoid variable substitution in arithmetic substitution
* reduce number of successive blank lines at the top level down to two
* simplify evaluation of "printenv" output