Você referenciou a variável interna bash
SECONDS
(que gera o número de segundos decorridos desde que a instância atual do shell foi invocada) e salvou o valor como outra variável time_spent
. Agora, depois disso toda vez que você verificar o valor da variável time_spent
, você obterá o mesmo valor - o salvo, no momento da expansão de SECONDS
.
Para obter dinamicamente SECONDS
, você deve referenciar $SECONDS
diretamente, em vez de usar uma variável intermediária:
echo "Time: $SECONDS"
Se você insistir em usar uma variável intermediária, certifique-se de fazer a expansão de $SECONDS
a cada vez.
Em relação ao valor de SECONDS
sendo 0
, você pode facilmente reproduzir isso:
% bash -c 'echo $SECONDS'
0
O ponto é: quando você está calculando o valor, ainda não é um segundo, então o valor está sendo 0
, corretamente.