Когда вы упоминаете необъявленную переменную в $((..))
в форме расширения переменной (например, $var
), она раскрывается в пустую строку вместо нуля, таким образом, вы получаете ошибку. Не используйте переменные расширения в арифметических расширениях, если это не нужно. Измените 13-ю строку на следующую, и все готово.
DIFF=$((CTIME-LRST))
Другая проблема с вашим сценарием заключается в том, что вы заполняете NRST
и LRST
в цикле while, и таким образом они недоступны вне цикла. Чтобы это исправить, замените цикл while на:
IFS='|' read -r NRST LRST <"$RSTL"
echo "NRST is: $NRST"
echo "LRST is: $LRST"
И не забывайте заключать в кавычки все расширения переменных, чтобы избежать разбиения слов.