Вы указали внутреннюю переменную bash SECONDS (которая выводит количество секунд, прошедших с момента вызова текущего экземпляра оболочки) и сохранила значение в качестве другой переменной time_spent. Теперь, после этого каждый раз, когда вы проверяете значение переменной time_spent, вы получите то же значение - сохраненное в момент расширения SECONDS.
Чтобы динамически получить , вы должны ссылаться на $SECONDS напрямую, а не на использование промежуточной переменной:
echo "Time: $SECONDS"
Если вы настаиваете на использовании промежуточной переменной, обязательно выполняйте расширение $SECONDS каждый раз. 2]
Что касается значения SECONDS, являющегося 0, вы можете легко воспроизвести это:
% bash -c 'echo $SECONDS'
0
Точка: когда вы вычисляете значение, это еще не секунда, поэтому значение будет 0, правильно.